2013-04-05 46 views
1

I'l加載使用Image Magisk這樣的BMP圖像的BMP:加載使用ImageMagick

#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

Martin,似乎有些圖像類型(例如TIFF)支持視圖分辨率,這與實際圖像尺寸不同。關於該主題的文檔很少,但是看看它出現的源代碼,它也可能與圖像密度/ DPI信息有關。不論何種格式

,實際的圖像尺寸可使用Image類的columns()rows()方法,而不是(x/y)Resolution()方法進行檢索。

+0

哈!你是對的。那是錯誤。我一直在尋找ImageMagick的javadoc樣式文檔... – 2013-04-06 04:59:20

+0

@MartinKristiansen - 這裏是Magick ++的文檔:http://www.imagemagick.org/Magick++/Documentation.html另外,我發現他們的消息董事會是相當有幫助的,在未來你可能會得到一個更好的迴應張貼在那裏:http://www.imagemagick.org/discourse-server/祝你好運! – Tom 2013-04-06 05:00:37

+0

然而..我仍然不能保存圖像...或其他字圖像時保存索賠到bave維度0x0 – 2013-04-06 05:09:46