L_PuzzleEffectBitmap

# include“l_bitmap.h”

L_LTIMGSFX_APIL_INTL_PuzzleEffectBitmap (pBitmap、uXBlock uYBlock、uRandomize uFlags, crColor);

将图像分为街区并随机排列这些块内部的图像。

参数

pBITMAPHANDLEpBitmap

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

L_UINTuXBlock

如果PUZZLE_SIZE标志设置,该值表示每个块的宽度,以像素为单位。如果设置了PUZZLE_COUNT标志,它代表块的数量每一行。

L_UINTuYBlock

如果PUZZLE_SIZE标志设置,该值表示每个块的高度,以像素为单位。如果设置了PUZZLE_COUNT标志,它代表每列块的数量。

L_UINTuRandomize

随机过程的起点。有效值范围从0到500年。用0到函数选择的起点。

L_UINTuFlags

标志指定如何应用问题的效果。可能的值是:

价值 意义
PUZZLE_BORDER [0 x0001]画边界周围的拼图块。使用crColor参数通过边框颜色。如果不设置BITMAP_RESIZE国旗和边缘块比内部块有不同的大小,边界不会画右侧和底部边缘。
PUZZLE_SHUFFLE [0 x0002]洗牌周围的街区,控制的随机过程uRandomize参数。如果没有设置这个标志,街区将保持在原来的位置。
PUZZLE_SIZE [0 x0010]应用使用拼图效果uXBlockuYBlock参数为每个块的宽度和高度,以像素为单位。
PUZZLE_COUNT [0 x0020]应用难题影响使用uXBlock和uYBlock参数作为块的数量每一行和每一列。
BITMAP_RESIZE [0 x0100]调整图像,以确保所有块大小相等。如果不设置这个标志,那么剩下的图像(边缘块)将比内部操纵不同的块。

也就是说crColor

如果PUZZLE_BORDER设置uFlags这个值代表的颜色边界,将周围的街区。这个参数被忽略,如果PUZZLE_BORDER国旗没有设置。

返回

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

评论

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

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

将图像分为若干块根据传递给它的旗帜。如果PUZZLE_SIZE标志设置,那么图像分成块使用uXBlockuYBlock块的尺寸参数。如果PUZZLE_COUNT标志设置,图像将被分为块使用uXBlock和uYBlock参数块的数量每行和每列块的数量。

如果没有设置BITMAP_RESIZE国旗,边缘块比内部块可能有不同的大小。这意味着将操纵不同的边缘块内部块。内部块具有相同的维度将转来转去。右边缘块将会重新洗牌和底部边缘块将重新洗牌。

如果BITMAP_RESIZE标志设置,图像会被调整大小以确保所有模块都有相同的尺寸。在这种情况下,边缘块比内部块不会区别对待。

如果设置了PUZZLE_BORDER国旗,边界将通过的颜色crColor参数。如果没有设置这个标志,没有边界。

如果没有设置PUZZLE_SHUFFLE国旗,街区将出现在原来的位置。如果这个标志设置块会随机出现。随机化过程将被控制的uRandomize参数如下:

如果uRandomize设置为0,则函数将选择随机过程的起点。你会得到一个不同的结果每次调用这个函数与uRandomize = 0。

如果你设置uRandomize > 0,该函数将使用该值作为随机过程的起点。你会得到相同的结果每次调用这个函数具有相同的价值uRandomize > 0。

边缘块大小相同,但作为内部块可能进入生成图像的中间。边缘块用不同的大小比内部块将保持边缘。

必须设置PUZZLE_SIZE或PUZZLE_COUNT(但没有)函数影响形象。如果你通过为0uFlags,函数图像不变。

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

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

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

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

必需的dll和库

平台

x64 Win32。

另请参阅

功能

主题

例子

这个示例加载位图加载图像并应用一个谜效应。

L_INT PuzzleEffectBitmapExample (L_VOID){L_INT nRet;BITMAPHANDLE LeadBitmap;/ *加载位图句柄保存图像。* // *加载位图,保持文件的比特每像素* /nRet = L_LoadBitmap (MAKE_IMAGE_PATH(文本(“ImageProcessingDemo \ \ Image2.jpg”&LeadBitmap)),运算符(BITMAPHANDLE), 0 ORDER_BGR空,空);如果(nRet ! =成功)返回nRet;/ *应用效果的难题位图* /nRet = L_PuzzleEffectBitmap (&LeadBitmap 10 10 0 PUZZLE_BORDER | PUZZLE_SHUFFLE | PUZZLE_COUNT | BITMAP_RESIZE, RGB (0, 0, 0));如果(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领先的技术公司。保留所有权利。