musicstashall
Знающий
- Сообщения
- 322
- Репутация
- 7
Доброго.
Имеется изображение png в черно-белом исполнении, необходимо изменить черный на любой другой с сохранением сглаживания и прозрачности.
Вероятно, это можно сделать с помощью _GDIPlus_ImageAttributesSetColorMatrix. Поясните пожалуйста, как это работает, я не догоняю:
Или может вариант с маской, что было бы правильнее.
Имеется изображение png в черно-белом исполнении, необходимо изменить черный на любой другой с сохранением сглаживания и прозрачности.
Код:
Func _GDIPlus_BitmapCreate($sPath, $iWidth, $iHeight, $iColor = 0)
Local $hImage = _GDIPlus_ImageLoadFromFile($sPath)
Local $hBitmap = _GDIPlus_ImageResize($hImage, $iWidth, $iHeight)
If $iColor Then
; ??????
EndIf
Local $hBMP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_BitmapDispose($hBitmap)
Return $hBMP
EndFunc
Вероятно, это можно сделать с помощью _GDIPlus_ImageAttributesSetColorMatrix. Поясните пожалуйста, как это работает, я не догоняю:
Код:
Global Const $tagGDIPCOLORMATRIX = "float m[25];" ; [5][5] matrix; [0][0] - red, [1][1] - green, [2][2] - blue; [3][3] - alpha, [4][4] - ~should~ be 1
Или может вариант с маской, что было бы правильнее.
Вложения
Последнее редактирование: