Тема: AHK: Прозрачность картинок в GUI
Текста много. Прошу прощения, но в двух словах не объяснить.
Хочу создать что-то вроде скина для GUI. Фоном будет картинка. На этом фоне будут расположены кнопки (тоже картинки). С прямоугольными картинками все просто, там не надо делать их прозрачными. А вот с картинками другой формы, не прямоугольной, есть загвоздка. Надо делать часть фона прозрачным.
Вариант 1
Задать цвет фона GUI и цвет фона картинки одинаковыми, и сделать в GUI этот цвет прозрачным, тогда будет видна та часть картинки, которая будет отличаться от цвета, который задали прозрачным.
Вариант 2
Я нигде раньше про это не читал, но случайно обнаружил следующее. Делаем картинку, фон для нее делаем любого цвета, при этом создаем альфа-канал и зарисовываем фон картинки (эта часть картинки с альфа-каналом в GUI будет прозрачна). Создаем GUI с любым фоном и делаем этот цвет прозрачным. В итоге фон GUI - прозрачный, часть картинки - прозрачная. И всё это не зависит от цвета, который мы выбрали для прозрачности.
Я использовал второй вариант. Создал картинку: круг, на нем нарисована линия. Фон залит альфа-каналом.
Создаю GUI с фоном произвольного цвета, делаю его прозрачным, добавляю созданную картинку и получаю GUI в виде круга. Это как бы теперь фон GUI. Далее я хочу сверху добавить еще картинку (как бы кнопку). Она тоже произвольной формы. Я добавил туже картинку, но уменьшив ее в размерах.
В итоге часть фона стала прозрачной. Что бы дальше не разводить писанину, просто запустите скрипт и станет понятно, что меня не устраивает: я хочу, что бы вторая картинка была без прозрачного фона, но в виде круга.
Скачать fon.bmp 1.17мб
или можно не скачивать, скрипт сам скачает
If !FileExist("fon.bmp")
URLDownloadToFile, http://onemove.ru/get/27091 ,fon.bmp
c=fe0000 ; произвольный цвет
gui, color, %c%
gui, +AlwaysOnTop +LastFound +ToolWindow -Caption -Border
WinSet, TransColor, %c% 255
gui, add, picture, w300 h-1, fon.bmp
gui, add, picture, w200 h-1 x150 y45, fon.bmp
gui, show
Return
GuiEscape:
GuiClose:
ExitApp


