图像之王ImageMagick
这是我目前能想到的名字。很久前某图像群看到有人推荐过,试了一下确实厉害,支持的格式之多让人叹服。
http://www.imagemagick.org/script/formats.php
一般用法
https://blog.csdn.net/zhugefei/article/details/45222117
习惯ffmpeg命令行转一般视频后,也想搞个图像转换的命令行工具,于是就想到了这个,其实是今天翻OpenGL Step by Step教程,无意看到纹理读取用的这个库,才想起来一用。
其实我基本只需要这么一句
convert src.png dst.jpg
开发方面
https://blog.csdn.net/leixiaohua1020/article/details/26754089
基础操作
1 #include <stdio.h> 2 #include <iostream> 3 4 #include <Magick++.h> 5 6 using namespace std; 7 using namespace Magick; 8 9 int main() 10 { 11 Image img; 12 13 img.read("logo.jpg"); 14 15 img.magick("png"); 16 img.write("logo.png"); 17 18 //img.magick("bmp"); 19 //img.write("logo.bmp"); 20 21 //img.magick("tga"); 22 //img.write("logo.tga"); 23 24 //img.magick("tiff"); 25 //img.write("logo.tiff"); 26 27 //img.magick("ppm"); 28 //img.write("logo.ppm"); 29 30 int w = img.columns(); 31 int h = img.rows(); 32 33 34 return 0; 35 }
比较坑的是,下载官方的exe安装包,选择安装C/C++库,但是在VS2017中读取操作就出异常,google搜了下说要自己从源码编译,官方github也不支持windows下的预编译了似乎。
试了下OpenGL Step by Step教程中的就没问题,奇了怪了,懒得折腾自己再从源码编译一遍,就用这个教程编译好了的算了。
ogldev-source\Include\ImageMagick-6 ogldev-source\Lib ogldev-source\Windows\ogldev\Debug ogldev-source\Windows\ogldev\Release
本来stb_image做游戏就够用了,但是有时会写点小工具软件,这时就可能用得上了。
FreeImage的问题是有些格式只有Reader没有Writer,DevIL有Writer但是用了很讨厌的UPX壳,一直想不通给自己的库加壳的人脑子是怎么想的...