当前位置: 首页 > 工具软件 > Magick++ > 使用案例 >

Magick++: NoDecodeDelegateForThisImageFormat with ICO file

巫马自明
2023-12-01

问题:
C++下,用ImageMagick++读取ico文件,由于后台存储都是以id形式作为文件名,读取时候报错:
Magick++:NoDecodeDelegateForThisImageFormat,但是在id后面加上后缀ico,就可以运行。

解决办法:
http://www.imagemagick.org/discourse-server/viewtopic.php?t=14531

一开始参考了http://blog.chinaunix.net/uid-174325-id-1743981.html 的解决办法,导入MAGICK_CODER_MODULE_PATH环境变量,发现解决不了问题。进入ImageMagick++安装目录下的lib/ImageMagick-6.7.6/modules-Q16/coder文件发现是个空文件,猜测是make install的时候没configure这个coder,重新编译安装,把–with-modules打上,coder下有文件了。重新编译demo,设置环境变量,发现还是不能解决问题。并且unset了环境变量后,所有的图片都不能decode了。
结论:与MAGICK_CODER_MODULE_PATH环境变量无关,之前coder下为空的话不需要MAGICK_CODER_MODULE_PATH环境变量,是因为源码安装打出来的库默认已经把coder打进来了,所以不需要环境变量也可以直接read进图像。

解决办法是 :calling magick() b4 calling read(blob)

try {
    image.magick("ico");

    // Read a file into image object 
    image.read( "logo" );
}

解决问题的过程本来想从Magick++的源代码看是哪里出问题,无奈还是功力不够23333333,面向google编程,google大法好。;)

 类似资料:

相关阅读

相关文章

相关问答