fenhanxue 发表于 2017-8-30 15:03:08

如何将png图片的指定区域挖空,变成透明?【已解决】

本帖最后由 fenhanxue 于 2017-9-10 10:47 编辑

例如:
假设有一张png图片,想要将其某一指定的矩形区域变透明,再保存为新的png,应该如何实现?


如有一张400*400的图片,想要以下区域变透明:
左上角坐标(相对于图片):50,50
右下角坐标(相对于图片):100,100
应如何实现?

帆船 发表于 2017-9-9 21:24:28

本帖最后由 帆船 于 2017-9-9 21:25 编辑


#include <GDIPlus.au3>

Func _Bitmap_SetTransRect($hBitmap, $aRect)
        For $Num = $aRect To $aRect
                For $Mum = $aRect To $aRect
                        _GDIPlus_BitmapSetPixel($hBitmap, $Num, $Mum, 0x00FFFFFF)
                Next
        Next
EndFunc   ;==>_Bitmap_SetTransRect

Func _Bitmap_SetTransColor($hBitmap, $iColor)
        For $Num = 0 To _GDIPlus_ImageGetWidth($hBitmap) - 1
                For $Mum = 0 To _GDIPlus_ImageGetHeight($hBitmap) - 1
                        If _GDIPlus_BitmapGetPixel($hBitmap, $Num, $Mum) = "0xFF" & Hex($iColor, 6) Then
                                _GDIPlus_BitmapSetPixel($hBitmap, $Num, $Mum, 0x00FFFFFF)
                        EndIf
                Next
        Next
EndFunc   ;==>_Bitmap_SetTransColor
自用的两个小函数,分别是将指定区域全部透明和指定颜色透明

fenhanxue 发表于 2017-9-10 10:47:52

回复 2# 帆船


    感谢
页: [1]
查看完整版本: 如何将png图片的指定区域挖空,变成透明?【已解决】