L_RingEffectBitmap

# include“l_bitmap.h”

L_LTIMGSFX_APIL_INTL_RingEffectBitmap (pBitmap、nXOrigin nYOrigin、uRadius uRingCount, uRandomize, crColor,南,uFlags)

将图像划分为指定数量的戒指。每个环都是根据旋转角度旋转。每个环的旋转角度将随机选择或可以传递到函数的函数。

参数

pBITMAPHANDLEpBitmap

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

L_INTnXOrigin

坐标(像素)戒指的起源。

L_INTnYOrigin

坐标(像素)戒指的起源。

L_UINTuRadius

如果国旗RING_RADIUS设置uFlags这是每个环的宽度,以像素为单位。如果在uFlags RING_MAXRADIUS设置,这是最大半径,在像素。在后者情况下,每个环的宽度等于uRadius / uRingCount + 1。

L_UINTuRingCount

戒指的数量。

L_UINTuRandomize

随机过程的起点。有效的范围是0 - 500。如果为0,则函数将选择的起点。如果> 0,这个值将是起点。

也就是说crColor

颜色用来填补未定义的区域。使用该参数只有uFlags包含RING_COLOR。

L_INTnAngle

每个环的旋转角度值与内圈相比,数度。使用该参数只有uFlags包含RING_FIXEDANGLE。可接受的值的范围从-18000年到18000年。这个值是内部除以100。

L_UINTuFlags

旗帜控制功能的行为。这些标志可以或者艾德连同其他国旗,除非另有说明。

价值 意义
RING_COLOR [0 x0000]控制环的输出未定义的区域。未定义区域填充颜色crColor。如果你使用这个标志,不要使用RING_REPEAT或RING_NOCHANGE。
RING_REPEAT [0 x0001]控制环的输出未定义的区域。重复的边缘地区和填补这些值未定义的地区。边缘会重复一半在失踪的部分环。如果你使用这个标志,不要使用RING_COLOR或RING_NOCHANGE。
RING_NOCHANGE [0 x0002]控制环的输出未定义的区域。离开边缘像素保持不变。如果你旋转一个不完整的环,将继续留在原来的位图像素的地方你会定义部分戒指。如果你使用这个标志,不要使用RING_COLOR或RING_REPEAT。
RING_FIXEDANGLE [0 x0010]旋转每个环与内环固定旋转角度(得到)。
RING_RADIUS [0 x0100]表明uRadius包含每个环的宽度,以像素为单位。如果你使用这个标志,不要使用RING_MAXRADIUS。
RING_MAXRADIUS [0 x0200]表明uRadius包含最大半径,在像素,对应于外部环。在这种情况下,每个环的宽度uRadius /uRingCount+ 1。如果你使用这个标志,不要使用RING_RADIUS。

返回

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

评论

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

这个函数可以处理整个图像或一个地区的形象。如果位图有一个地区,效果仅适用于该地区。

将图像划分为一定数量的戒指。每个环旋转相比,其内环根据角度的转变。函数将随机选择的转变角度(如果没有设置RING_FIXEDANGLE标志)或将使用指定的角nAngle(RING_FIXEDANGLE标志设置)。

如果RING_FIXEDANGLE国旗没有设置,那么函数将随机选择的转变角度。起点(即“随机价值”)的随机数生成器选择通过uRandomize参数,如下:

如果uRandomize设置为0,那么函数将选择一个随机值1和500之间的随机值。

如果uRandomize > 0,它将用于随机值。注意,uRandomize应该介于1和500在这种情况下。

虽然是随机生成的数字,如果你开始使用相同的随机值你总会得到相同的随机数序列。这意味着,如果你叫uRandomize函数两次相同的值,你会得到相同的结果。

环的中心是由nXOriginnYOrigin参数。函数计算每个环的宽度除以最大半径(uRadiusuFlags将RING_MAXRADIUS)环的数量(uRingCount+ 1)。

每个圆的最小宽度是2。如果划分的结果小于2,该函数将uRadius / 2环,每个环都有2的宽度。

戒指有一个很大的半径可能不是完全内的位图。我们将把这些称为“不完整的环”。我们将引用部分的环外的位图作为“待定部分”。当你旋转一个不完整的环,一个待定的戒指可能会进入视野。指定的功能有三个方面的输出像素待定部分进入视野的地方:

离开原来的位图像素不变(RING_NOCHANGE设置)或

重复(RING_REPEAT设置)或边缘像素

未定义区域填充颜色crColor(RING_COLOR设置)。

的决定部分环总是取代原来的位图像素。

图像被分成一个内层的圆和一个戒指的数量。最内层循环不会旋转。每个环与内圈旋转。旋转角度如下:

如果设置了RING_FIXEDANGLE,每个环将对得到的内圈旋转。换句话说,每个索引将对初始位置的旋转nAngle* <环指数>。(指数是基于0。最内层循环被认为是有一个索引为0,不会旋转)。

如果没有设置RING_FIXEDANGLE,函数将随机选取每个环的旋转角度。

环的宽度决定如下:

如果设置了RING_RADIUS, uRadius是每个环的宽度

如果设置了RING_MAXRADIUS, uRadius将最大环半径。在这种情况下,每个环的宽度uRadius/uRingCount+ 1。

这个函数支持LEADTOOLS支持的所有位/像素。

但支持12和16位灰度和48和64位彩色图像是可用的文档和医疗成像工具包。

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

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

必需的dll和库

平台

x64 Win32。

另请参阅

功能

主题

例子

这个示例加载位图加载图像并应用螺旋效应。

L_INT RingEffectBitmapExample (L_VOID){L_INT nRet;BITMAPHANDLE LeadBitmap;/ *加载位图句柄保存图像。* /L_UINT uXorg, uYorg, uRadius;/ *加载位图,保持文件的比特每像素* /nRet = L_LoadBitmap (MAKE_IMAGE_PATH(文本(“ImageProcessingDemo \ \ Image2.jpg”&LeadBitmap)),运算符(BITMAPHANDLE), 0 ORDER_BGR空,空);如果(nRet ! =成功)返回nRet;uXorg = (L_UINT) (LeadBitmap.Width / 2);uYorg = (L_UINT) (LeadBitmap.Height / 2);uRadius = uXorg;/ *环效应应用于这个位图与起源(uXorg, uYorg)。最大的环半径等于位图的宽度的一半。画10环,未定义区域填充黑色和转向角等于1度。注意,您必须定义区域只有位图的位图宽度大于高度。* /nRet = L_RingEffectBitmap (&LeadBitmap uXorg, uYorg, uRadius 10 0, RGB(0, 0, 0), 100年,RING_COLOR | RING_FIXEDANGLE | RING_MAXRADIUS);如果(nRet ! =成功)返回nRet;nRet = L_SaveBitmap (MAKE_IMAGE_PATH(文本(“Result.BMP”))、&LeadBitmap FILE_BMP, 24岁,0,NULL);如果(nRet ! =成功)返回nRet;/ /免费的位图如果(LeadBitmap.Flags.Allocated)L_FreeBitmap (&LeadBitmap);返回成功;}

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