Blog. Just Blog

Вывод изображения на Ассемблере с помощью GDI+

20.07.2015 | Категория: Образ мышления: Assembler | Автор: ManHunter
При разработке своих программ пришлось столкнуться с задачей загрузки произвольного изображения из файла или из памяти и последующего вывода его в диалоговое окно. Есть несколько вариантов, как это сделать, но, на мой взгляд, наиболее корректный путь - воспользоваться функциями стандартной библиотеки GDI+. Она поддерживается всеми современными системами Windows, начиная с Windows XP и обладает очень широкими возможностями по обработке изображений.

Сперва в сегменте данных надо определить структуру GdiplusStartupInput, про которую FASM не знает. Да и в импорте тоже придется самостоятельно приписать несколько функций из библиотеки GDI+, так как в стандартных инклудах FASM их тоже нет. Описание остальных переменных, используемых в коде, вы можете посмотреть в прилагаемом к статье исходнике.
  1. ; Структура для работы с GDI+
  2. struct GdiplusStartupInput
  3.     GdiplusVersion           dd ?
  4.     DebugEventCallback       dd ?
  5.     SuppressBackgroundThread dd ?
  6.     SuppressExternalCodecs   dd ?
  7. ends
  8.  
  9. ; Размеры превьюшки
  10. IMG_X = 332
  11. IMG_Y = 248
  12.  
  13. ; ID статика для вывода изображения
  14. ID_IMG = 100
  15.  
  16. ; Имя файла для вывода на форму
  17. fname           db 'picture.jpg',0
Приведенный ниже код позволяет выводить на форму не только изображения в формате JPEG, но также BMP, PNG, GIF, ICO и других форматов, которые поддерживаются системой. Файл "picture.jpg" приведен только для примера. В реальных приложениях имя файла, естественно, будет другим. Размер и идентификатор STATIC для отображения картинки также будет меняться в зависимости от разрабатываемого приложения.

Читать статью целиком »
Просмотров: 8867 | Комментариев: 8

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 1 (0.012 сек.) / Память: 4.5 Mb
Наверх