Загрузка BMP с помощью ImageMagick

Я загружу изображение bmp, используя Image Magisk, вот так:

#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, и он может быть загружен здесь Фактический BMP, код компилируется нормально, но информация о разрешении неверна, программа выводит:

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

Что происходит, есть проблема с imagemagick или с моим изображением (я предполагаю, что есть проблема с моим изображением).

1

Решение

Мартин, кажется, что некоторые типы изображений (например, TIFF) поддерживают разрешения вида, которые отличаются от фактических размеров изображения. Документация по этой теме немногочисленна, но, судя по исходному коду, она также может иметь отношение к плотности изображения / информации о DPI.

Независимо от формата фактические размеры изображения могут быть получены с помощью columns() а также rows() методы класса Image, а не (x/y)Resolution() методы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector