所需依赖库下载:

Gdip.ahk库

 

#NoEnv
SetBatchLines -1
SetWorkingDir %A_ScriptDir%
; #Include <Gdip>
CoordMode ToolTip

pToken := Gdip_Startup()
pBitmap := Gdip_CreateBitmapFromFile("D:\PSTools\图标\11原图.png")

; pbitmap := Gdip_CreateBitmapFromHBITMAP(hBitmap)

; 原始颜色(RGB值)
originalColor := 0xFFFFFFFF ; 这里使用白色作为示例

; 替换成目标颜色(RGB值)
targetColor := 0xFF00FF00 ; 这里使用绿色作为示例

; 获取图像的宽度和高度
width := Gdip_GetImageWidth(pBitmap)
height := Gdip_GetImageHeight(pBitmap)

计时()
; 遍历图像的每个像素
Loop %height% {
  y := A_Index - 1
  Loop %width% {
    x := A_Index - 1
    pixel := Gdip_GetPixel(pBitmap, x, y)
    ; MsgBox % Format("0x{:X}", pixel)
    ; 检查像素是否与原始颜色匹配
    if (pixel = originalColor)
      Gdip_SetPixel(pBitmap, x, y, targetColor)  ; 替换为目标颜色
  }
}
ToolTip % "耗时:" 计时() " 毫秒", A_ScreenWidth, A_ScreenHeight//1.1, 11

; 保存成文件
; Gdip_SaveBitmapToFile(pBitmap, A_Desktop "\image.png")

hBitmap := Gdip_CreateHBITMAPFromBitmap(pBitmap)

Gui _hBM_后台调试: Destroy
Gui _hBM_后台调试: +LastFound -Resize
Gui _hBM_后台调试: Margin, 0, 0
Gui _hBM_后台调试: Add, Picture, , HBITMAP:*%hBitmap%
Gui _hBM_后台调试: Show, X5 Y5 AutoSize, 绑定窗口后台截图-hBM
Return


计时() {
  Static
  if 开始=
    DllCall("QueryPerformanceFrequency", "Int64*", 频率), DllCall("QueryPerformanceCounter", "Int64*", 开始)
   else
    DllCall("QueryPerformanceCounter", "Int64*", 结束), 耗时:=(结束 - 开始)/频率*1000, 开始:=""
  Return 耗时
}

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。