Функция LoadImage не работает с ImageMagick Созданные растровые изображения

Я пытаюсь загрузить некоторые растровые изображения с моим приложением, чтобы сделать некоторые сравнения, созданные с помощью ImageMagick с помощью следующей команды:

C:\Program Files\ImageMagick-7.0.6-Q16>Convert << SOURCE BMP >> -crop -650 << DEST BMP >>

Над исходным растровым изображением загружается нормально с LoadImage Функция API, но изображение, созданное ImageMagick (целевое растровое изображение), не загружается.

Как я использую LoadImage Функция:

HBitmapRight = (HBITMAP)LoadImage(nullptr, L"C:\\DEST.bmp", IMAGE_BITMAP, NULL, NULL, LR_LOADFROMFILE);
HBitmapRight = (HBITMAP)LoadImage(nullptr, L"C:\\SOURCE.bmp", IMAGE_BITMAP, NULL, NULL, LR_LOADFROMFILE);

я использовал GetLastError, но он вернулся ERROR_SUCCESS,

После моего исследования я нашел этот ответ и так, это может быть проблема кодировки или что-то подобное.

К сожалению, я не могу использовать такие инструменты, как MS Paint или Photoshop, но я могу использовать только ImageMagick, потому что это сравнение выполняется с использованием командной строки без взаимодействия с пользователем.

Можно ли установить какие-либо специальные флаги кодирования для использования с ImageMagick, чтобы создаваемые им растровые изображения могли быть совместимы с LoadImage?

Я запускаю это приложение на моем 64-разрядном компьютере с Windows 7, и установленный ImageMagick также является последней 64-разрядной версией. Компилятор MS Visual C ++
2017.

Это строки, которые вызывают проблему:

<Mask>
<Red/>
<Green/>
<Blue/>
<Alpha/>
</Mask>
<ColorSpaceType/>
<CIEXYZEndPoints>
<Red>
<X/>
<Y/>
<Z/>
</Red>
<Green>
<X/>
<Y/>
<Z/>
</Green>
<Blue>
<X/>
<Y/>
<Z/>
</Blue>
</CIEXYZEndPoints>
<Intent/>

Эти строки находятся в метаданных XML изображения, созданного ImageMagick. Я проверил с исходным изображением, у него нет этих строк.

Пожалуйста, помогите мне решить эту проблему без взаимодействия с пользователем.

1

Решение

Я исправил проблему, изменив команду ImageMagick на использование определенной версии формата растрового изображения, например:

C:\Program Files\ImageMagick-7.0.6-Q16>Convert << SOURCE BMP >> -define bmp:format=bmp3 -crop -650 << DEST BMP >>

Сейчас LoadImage Функция API прекрасно работает с созданными ImageMagick растровыми изображениями.

1

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

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

По вопросам рекламы [email protected]