找回密码
 加入
搜索
查看: 1530|回复: 2

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

[复制链接]
发表于 2017-8-30 15:03:08 | 显示全部楼层 |阅读模式
本帖最后由 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[0][0] To $aRect[0][1]
                For $Mum = $aRect[1][0] To $aRect[1][1]
                        _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
自用的两个小函数,分别是将指定区域全部透明和指定颜色透明
 楼主| 发表于 2017-9-10 10:47:52 | 显示全部楼层
回复 2# 帆船


    感谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 08:50 , Processed in 0.089821 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表