图像之王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教程中的就没问题,奇了怪了,懒得折腾自己再从源码编译一遍,就用这个教程编译好了的算了。

http://ogldev.atspace.co.uk/

ogldev-sourceIncludeImageMagick-6
ogldev-sourceLib

ogldev-sourceWindowsogldevDebug
ogldev-sourceWindowsogldevRelease

本来stb_image做游戏就够用了,但是有时会写点小工具软件,这时就可能用得上了。

FreeImage的问题是有些格式只有Reader没有Writer,DevIL有Writer但是用了很讨厌的UPX壳,一直想不通给自己的库加壳的人脑子是怎么想的...

原文地址:https://www.cnblogs.com/kileyi/p/8648407.html