L_RemoveRedeyeBitmap

# include“l_bitmap.h”

L_LTIMGCLR_APIL_INTL_RemoveRedeyeBitmap (pBitmap、rcNewColor uThreshold、nLightness uFlags)

删除“红眼”效应在彩色图像转换指定的红色的眼睛到新的颜色。

参数

pBITMAPHANDLEpBitmap

位图句柄指针引用的位图要修改。

也就是说rcNewColor

也就是说变量包含新颜色值用来替换红色的眼睛。

L_UINTuThreshold

阈值,表明像素将被改变这个函数。带有红色组件所有像素值大于这个值将被改变。像素与一个红色的组件值小于这个值不会改变。这个值是0到255之间。

L_INTnLightness

“比例”的值表示的像素替换是否减轻或黑暗。如果该值大于100,取代像素就会减轻。如果这个值小于100,取代像素将是黑暗的。这个函数保存原始像素和替代品的轻盈的红色新颜色。

L_UINT32uFlags

保留以供将来使用。必须是0。

返回

价值 意义
成功 函数是成功的。
< 1 一个错误发生。指返回代码

评论

这个函数不支持已签名的数据图像。它返回错误代码ERROR_SIGNED_DATA_NOT_SUPPORTED如果签名数据图像是传递给这个函数。

这个函数对灰度图像没有影响,因为没有“红眼”问题在灰度图像。

使用这个函数用户应该选择一个小区域在眼睛周围。否则,该函数将会改变所有的红色图像。这个函数还允许用户把红色换成新的颜色的眼睛是最接近原始的颜色。

更新状态栏或检测用户中断在执行这个函数,引用L_SetStatusCallback

这个函数支持48和64位的彩色图像。

这个函数不支持32位灰度图像。它返回错误代码ERROR_GRAY32_UNSUPPORTED如果一个32位的灰度图像是传递给这个函数。

必需的dll和库

平台

Win32 x64, Linux。

另请参阅

功能

主题

例子

这个示例加载位图,一个红色的眼睛问题,创建一个椭圆区域,并应用番茄酱删除功能。

L_INT RemoveRedeyeBitmapExample (){L_INT nRet;矩形rRgnRect;/ * * /矩形定义区域也就是说rcNewColor;/ *眼睛的颜色* /BITMAPHANDLE位图,/ *加载位图句柄保存图像。* // *加载位图* /nRet = L_LoadBitmap (MAKE_IMAGE_PATH(文本(“red_eye.cmp”)),位图,运算符(BITMAPHANDLE), 0 ORDER_BGR空,空);如果(nRet ! =成功)返回nRet;/ *指定矩形定义圆的眼睛。这个地区被指定通过鼠标IMGFEATR演示* /100年SetRect (&rRgnRect, 80年,20日,40);* / / *创建一个椭圆区域nRet = L_SetBitmapRgnEllipse(位图,NULL, &rRgnRect L_RGN_SET);如果(nRet ! =成功)返回nRet;/ *指定颜色眼睛* /rcNewColor = RGB (5、20、10);/ *应用番茄酱去除函数* /nRet = L_RemoveRedeyeBitmap(位图,rcNewColor, 125、100、0);如果(nRet ! =成功)返回nRet;/ *免费* /nRet = L_FreeBitmapRgn(位图);如果(nRet ! =成功)返回nRet;nRet = L_SaveBitmap (MAKE_IMAGE_PATH(文本(“Result.BMP”))、位图、FILE_BMP, 24岁,0,NULL);如果(nRet ! =成功)返回nRet;/ /免费的位图如果(Bitmap.Flags.Allocated)L_FreeBitmap(位图);返回成功;}

LEADTOOLS光栅成像C API的帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。