Что нового

Как сделать прозрачный фон для иконки PNG

ason

Новичок
Сообщения
25
Репутация
0
Добрый день, Всем! Для примера взял код из соседней темы. Подскажите, как сделать прозрачный фон в этом примере ?
Код:
#Include <GDIPlus.au3>
#Include <WinAPI.au3>

$Width = 256
$Height = 256

_GDIPlus_Startup()
$hOrigin = _GDIPlus_ImageLoadFromFile('Original.png')
$W = _GDIPlus_ImageGetWidth($hOrigin)
$H = _GDIPlus_ImageGetHeight($hOrigin)
$K1 = $Width / $W
$K2 = $Height / $H
If $K1 > $K2 Then
    $K1 = $K2
EndIf
$W *= $K1
$H *= $K1
$hBitmap = _WinAPI_CreateSolidBitmap(0, 0xFFFFFF, $Width, $Height)
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
_WinAPI_DeleteObject($hBitmap)
$hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hOrigin, ($Width - $W) / 2, ($Height - $H) / 2, $W, $H)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hOrigin)
_GDIPlus_ImageSaveToFile($hImage, 'Resized.png')
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()

Сообщение автоматически объединено:

Делаю так, вроде работает, но не уверен, что правильно..

Код:
#Include <GDIPlus.au3>
#Include <WinAPI.au3>

$Width = 256
$Height = 256

_GDIPlus_Startup()
$hOrigin = _GDIPlus_ImageLoadFromFile('original.png')
$W = _GDIPlus_ImageGetWidth($hOrigin)
$H = _GDIPlus_ImageGetHeight($hOrigin)
$K1 = $Width / $W
$K2 = $Height / $H
If $K1 > $K2 Then
    $K1 = $K2
EndIf
$W *= $K1
$H *= $K1
$hBitmap = _GDIPlus_BitmapCreateFromScan0($Width, $Height)
$hGraphic = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hOrigin, ($Width - $W) / 2, ($Height - $H) / 2, $W, $H)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hOrigin)
_GDIPlus_ImageSaveToFile($hBitmap, 'Resized.png')
_GDIPlus_ImageDispose($hBitmap)
_GDIPlus_Shutdown()
 
Последнее редактирование:
Верх