图片纯色文字,怎么做变色处理
上面显示的时间暗红色,看不清啊,怎么反向白色?或换种亮色
#include <GDIPlus.au3>
Local $sFile = 'test.jpg'
_GDIPlus_Startup()
Local $hImage = _GDIPlus_ImageLoadFromFile($sFile)
If @error Then Exit
Local $iW = _GDIPlus_ImageGetWidth($hImage)
Local $iH = _GDIPlus_ImageGetHeight($hImage)
Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH)
Local $hContext = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsDrawImageRect($hContext, $hImage, 0, 0, $iW, $iH)
Local $tBitmapData = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $iW, $iH, BitOR($GDIP_ILMWRITE, $GDIP_ILMREAD), $GDIP_PXF32ARGB)
Local $iScan0 = DllStructGetData($tBitmapData, 'Scan0')
Local $tPixel = DllStructCreate('int[' & $iW * $iH & ']', $iScan0)
Local $iY, $iX, $iPixel, $iRowOffset, $iR
For $iY = 0 To $iH - 1
$iRowOffset = $iY * $iW + 1
For $iX = 0 To $iW - 1
$iPixel = DllStructGetData($tPixel, 1, $iRowOffset + $iX)
$iR = BitShift(BitAND($iPixel, 0x00FF0000), 16)
If $iR > 0x7D Then DllStructSetData($tPixel, 1, 0xFFFFFFFF, $iRowOffset + $iX)
Next
Next
_GDIPlus_BitmapUnlockBits($hBitmap, $tBitmapData)
Local $hGUI = GUICreate('', $iW, $iH)
GUISetState()
Local $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $iW, $iH)
Do
Until GUIGetMsg() = -3
_GDIPlus_ImageDispose($hImage)
_GDIPlus_GraphicsDispose($hContext)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
GUIDelete($hGUI) 百度API文字识别接口,识别不出来,百度返回数据 {"words_result":[],"log_id":1374599240751251456,"words_result_num":0}
如果用高亮,人眼一眼就能看清的,就没问题 可以提取红色接近值像素 替换掉 有参考案例吗 老大,历害啊,用AU3怎么实现,有案例参考不 有UDF调用的不?老大,指点下啊 代码 中的_GDIPlus_BitmapCreateFromScan0没有定义,哪句是取值,替换颜色啊,老大,我好笨 我好奇如果是 透明色 的代码是什么 Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH) 这句是不是换成这样啊Local $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iW, $iH,'Scan0')换了可以运行,但显示的全白,啥也看不到 这猜 这代码 是不是把“Scan0 ”字符串写到一张图里啊, 我要的是现有的图,找到颜色 替换掉,给个能用的案例可以不,老大 以前也是按照a版的方式处理的,如果不是纯红绿蓝,还需要判断分别哥通道颜色。再就是高分辨率的图片,时间长上可能会长一些,还需要再想办法锁定目标位置。 敬仰大佬,10几年后到此一游
页:
[1]