Автор Тема: [Графика GDIPlus] Создание hImage из Bitmap  (Прочитано 13461 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 564
  • Репутация: 152
    • Награды
Re: [Графика GDIPlus] Создание hImage из Bitmap
« Ответ #45, Отправлен: Август 10, 2012, 17:49:25 »
Yashied
Спасибо. Может это добавить в НЕофициальный FAQ AutoIt?
Правда в моем случае трудно хранить битмап GDI+, во-первых он действительно разрушается при вызове _GDIPlus_Shutdown, во-вторых HBITMAP является вырезкой из битмапа GDI+ (каждый раз вырезать - довольно накладно по времени). И фон у меня - картинка. Поэтому и нужна была функция _GDIPlus_BitmapCreateFromHBITMAP с поддержкой прозрачности.

Русское сообщество AutoIt

Re: [Графика GDIPlus] Создание hImage из Bitmap
« Ответ #45 Отправлен: Август 10, 2012, 17:49:25 »

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2700
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [Графика GDIPlus] Создание hImage из Bitmap
« Ответ #46, Отправлен: Август 10, 2012, 18:14:48 »
...во-первых он действительно разрушается при вызове _GDIPlus_Shutdown...

_GDIPlus_Shutdown() вообще не нужна (Windows автоматически все уничтожает при завершении процесса), ну или вызывать один раз перед выходом из программы.

...во-вторых HBITMAP является вырезкой из битмапа GDI+ (каждый раз вырезать - довольно накладно по времени).

Нет, не накладно. В любом случае, если изначальный битмап GDI+ еще нужен, то лучше хранить его в памяти для последующего использования. Если нужна вырезка, то можно хранить ее, но конвертить туда-сюда, это неправильный подход.

И фон у меня - картинка. Поэтому и нужна была функция _GDIPlus_BitmapCreateFromHBITMAP с поддержкой прозрачности.

Если картинка статичная, то лучше в качестве фона использовать соответствующую часть этой картинки аккурат под Pic. Это справедливо, если планируется анимация, дабы избежать мерцаний. Если изображение в Pic вставляется один раз и на долго, то можно обойтись DIB с прозрачностью, и после очередного обновления вызывать _WinAPI_InvalidateRect() для родительского окна с указанием размера Pic.


Думай, прежде чем говорить.

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 564
  • Репутация: 152
    • Награды
Re: [Графика GDIPlus] Создание hImage из Bitmap
« Ответ #47, Отправлен: Август 10, 2012, 18:58:12 »
Yashied  [?]
Цитировать
но конвертить туда-сюда, это неправильный подход.

Самому не нравится. Видимо придется переделать.

Русское сообщество AutoIt

Re: [Графика GDIPlus] Создание hImage из Bitmap
« Ответ #47 Отправлен: Август 10, 2012, 18:58:12 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
4605 Просмотров
Последний ответ Июнь 17, 2010, 15:28:27
от CreatoR
27 Ответов
8776 Просмотров
Последний ответ Май 10, 2012, 07:53:15
от Ganibal95
4 Ответов
2232 Просмотров
Последний ответ Май 10, 2012, 00:55:55
от madmasles
0 Ответов
745 Просмотров
Последний ответ Август 21, 2015, 20:18:24
от CreatoR
6 Ответов
2487 Просмотров
Последний ответ Декабрь 08, 2015, 13:12:33
от Yura
3 Ответов
3185 Просмотров
Последний ответ Декабрь 16, 2017, 16:10:23
от Ganibal95
9 Ответов
1560 Просмотров
Последний ответ Январь 22, 2017, 15:54:51
от inververs
8 Ответов
2737 Просмотров
Последний ответ Июль 28, 2017, 22:05:09
от musicstashall
3 Ответов
671 Просмотров
Последний ответ Сентябрь 26, 2017, 15:04:37
от InnI
1 Ответов
118 Просмотров
Последний ответ Июль 16, 2019, 08:24:09
от joiner