使用ImageMagick加载bmp

时间:2013-04-05 20:07:50

标签: c++ imagemagick bmp

我正在使用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; 
}

我正在加载的图片就是这个:

e

它是一个bmp并且可以在这里加载the Actual bmp,代码编译得很好,但是分辨率信息错误,程序输出:

image: ../sd_nineteen/HSF_0/F0000_14/HSF_0_F0000_14_C0000_14_100_e_65.bmp
0
0

怎么回事,imagemagick或我的图片有问题(我猜我的图片有问题)。

1 个答案:

答案 0 :(得分:1)

Martin,看起来好像某些图像类型(例如TIFF)支持的视图分辨率与实际图像尺寸不同。关于该主题的文档很少,但查看它看起来的源代码,它也可能与图像密度/ DPI信息有关。

无论格式如何,都可以使用Image类的columns()rows()方法检索实际图像尺寸,而不是(x/y)Resolution()方法。