我需要将原始的 rgb32 格式的图像转换为具有许可(例如 BSD 或 Apache)许可证的库(按优先顺序用 Java、C、C++ 编写)的 PNG。
我可以通过这个调用使用 FFmpeg 转换图像:
ffmpeg.exe -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 20x40 -i infile -f image2 -vcodec png out.png
其中 20x40 是宽度乘以高度。
但是,遗憾的是,由于它的许可证,我需要避免使用 FFmpeg。
我看到人们推测 libpng 可以完成这项工作,但鉴于我在 libpng 站点上看到的文档,我对此表示怀疑。也许你会举个例子。
我不知道 rawvideo 和 rgb32 值对 FFmpeg 意味着什么,所以我问 this question .
编辑 1:编辑 ffmpeg 调用以显示宽度 x 高度。
最佳答案
您确定不能将 ffmpeg 链接到专有应用程序吗?根据http://ffmpeg.org/legal.html ,大部分 ffmpeg 都在 GNU LGPL 下可用,它允许您与专有程序链接,只要您遵循“许可证合规性检查表”并且不使用 GPL-only 功能。
如果不想动态链接,看ImageMagick ,在宽松的 Apache 许可下发布。 ImageMagick 似乎支持读取原始 RGB 图像(见 its list of formats。)它是用 C 和 has Java bindings 编写的。 .
关于image - 使用具有许可许可的开源库转换原始图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7248682/