我正在使用Image Magisk加载bmp图像,如下所示:
#include <Magick++.h>
#include <iostream>
using namespace std;
int main(int argc,char **argv)
{
Magick::InitializeMagick(*argv);
Magick::Image image;
try {
// Read a file into image object
image.read( argv[1] );
cout << "image: " << argv[1] << endl;
cout << image.xResolution() << endl;
cout << image.yResolution() << endl;
}
catch( Magick::Exception &error_ )
{
cout << "Caught exception: " << error_.what() << endl;
return 1;
}
return 0;
}
我正在加载的图片就是这个:
它是一个bmp并且可以在这里加载the Actual bmp,代码编译得很好,但是分辨率信息错误,程序输出:
image: ../sd_nineteen/HSF_0/F0000_14/HSF_0_F0000_14_C0000_14_100_e_65.bmp
0
0
怎么回事,imagemagick或我的图片有问题(我猜我的图片有问题)。
答案 0 :(得分:1)
Martin,看起来好像某些图像类型(例如TIFF)支持的视图分辨率与实际图像尺寸不同。关于该主题的文档很少,但查看它看起来的源代码,它也可能与图像密度/ DPI信息有关。
无论格式如何,都可以使用Image类的columns()
和rows()
方法检索实际图像尺寸,而不是(x/y)Resolution()
方法。