# include“l_bitmap.h”
L_LTEFX_APIL_INTL_EfxEffectBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hd证监会,nXSrc, nYSrc, uEffect, uGrain, uDelay, nSpeed, nCycles, uPass, uMaxPass, fTransparency, crTransparency, uWandWidth, crWand, uROP)
在应用特殊效果的同时,将与矩形像素对应的颜色数据从指定源设备上下文中传输到目标设备上下文中。
目标设备上下文的句柄。
目标矩形原点的X坐标。
目标矩形原点的Y坐标。
目标矩形的宽度。
目标矩形的高度。
源设备上下文的句柄。
源矩形原点的X坐标。
源矩形原点的Y坐标。
涂漆时的效果。有效值请参见影响类型.
粒化的大小。这是绘制效果时要更新的最小尺寸(像素宽度或高度)。使用小颗粒使绘画更流畅,但需要更长的时间作画。使用大的颗粒会使画更粗糙,但画得更快。如果uEffect
参数来自Wave类,它表示波的持续时间或高度。取值范围为1 ~ 256。
颗粒化步骤之间的延迟,以毫秒为单位。
波的速度。取值范围为1 ~ 256。该参数仅当uEffect
参数来自Wave类。
用于绘制波浪的循环或重复次数。该参数仅当uEffect
参数来自Wave类。
使用图案刷时传递数字。使用1表示一次粉刷。
一个图案刷的最大通行次数。使用1表示一次粉刷。
属性中指定的颜色的像素不绘制,从而实现透明度crTransparency
参数;如果没有实现透明性,则为FALSE。
指定透明颜色的COLORREF值。
魔杖宽度,以像素为单位。
指定魔杖颜色的COLORREF值。
用于显示的Windows ROP代码。该参数的代码与Windows BitBlt函数相同。对于普通绘画,使用SRCCOPY。
价值 | 意义 |
---|---|
成功 | 活动很成功。 |
< 1 | 发生错误。指返回代码. |
当你想要一个特殊的绘画效果时,使用这个函数作为Windows BitBlt C API函数的替代品。
使用uGrain
和uDelay
参数来控制显示速度。uGrain参数控制绘画增量的大小,uDelay控制增量之间的时间。
魔杖是一个纯色条,在效果期间移动。小颗粒尺寸产生最好的魔杖效果。中列出的许多影响影响类型可以有一根魔杖。
使用见血封喉
和uMaxPass
参数,以在多个通道中绘制图像。例如,如果你想要一个3-pass的油漆,使用uMaxPass的3和油漆3次,一次uPass = 1,一次uPass = 2,一次uPass = 3。
EFX_EFFECT_PUSH_CLASS的多通道绘制被禁用。
如果uEffect
参数是旋转类,白色翻转类,翻转类,替换类,激光类,淡出正常类,淡出黑白类,淡出彩色类或波类,uPass和uMaxPass参数没有影响。
如果uEffect参数来自Fade Normal类、Fade Black and White类或Fade Color类,uGrain参数没有效果。但是,如果uEffect参数来自Wave类,则uGrain
参数包含波的大小。
如果uEffect参数来自White Turnover类、Turnover类或Replace类,则uWandWidth
和crWand
参数无效。但是,如果uEffect参数来自Fade Color类,crWand参数包含位图颜色级别。
的全国
和nCycles
只有当uEffect参数来自Wave类时,参数才有效。
有关一般信息,请参阅执行特殊效果.
必需的dll和库
x64 Win32。
这个函数展示了如何使用L_EfxEffectBlt绘制位图
到屏幕上使用一种特殊效果。
L_INT EfxEffectBltFirstExample(HWND HWND)
{
L_INT nRet;
HDC画;/*设备上下文为当前窗口*/
HDC hdcSrc;/*设备上下文为源图像*/
BITMAPHANDLE位图;/*图像将是BLT */
HBITMAP hbmMem;/*图像将是BLT */
hSavedPalette = NULL;/*当前系统面板的临时副本*/
HPALETTE hPaintPal = NULL;/*我们将用来绘制*/的调色板
L_INT nBitsPerPixel;
/*获取设备上下文*/
hdcDest = GetDC (hWnd);
/*检查设备查看如果我们需要一个调色板
nBitsPerPixel = GetDeviceCaps(hdcDest, BITSPIXEL) * GetDeviceCaps(hdcDest, PLANES);
/*将图像加载到BLT */
/*加载图像为屏幕位深*/
nRet = L_LoadBitmap(MAKE_IMAGE_PATH(TEXT(“IMAGE1。CMP”)),位图,运算符(BITMAPHANDLE), (nBitsPerPixel <= 8) ?nBitsPerPixel: 24, ORDER_BGR, NULL, NULL);
如果(nRet != SUCCESS)
返回nRet;
/*创建源DC */
hd证监会= CreateCompatibleDC(hdcDest);
/*将图像转换为DDB并将其选择为源dc */
hbmMem = l_converttodb (hdcDest, &Bitmap);
hbmMem = (HBITMAP)SelectObject(hd证监会,hbmMem);
如果(nBitsPerPixel <=8)
{
hPaintPal = L_CreatePaintPalette(hdcDest, &Bitmap);
hSavedPalette = SelectPalette (hdcDest, hPaintPal, FALSE);
/*实现调色板*/
RealizePalette(画);
}
/*绘制图像使用nRet = L_EfxEffectBlt和3步*/
nRet = L_EfxEffectBlt(hdcDest, /*句柄到目标dc */
0, /*目标矩形左上角的x坐标*/
0, /*目标矩形左上角的x坐标*/
位图。宽度,/*目标矩形宽度*/
位图。高度,/*目标矩形的高度*/
hd证监会,/*句柄到源设备上下文*/
0, /*源矩形左上角的x坐标*/
0, /*源矩形左上角的纵坐标*/
EFX_EFFECT_WIPE_L_TO_R, /*油漆效果使用*/
1、/*晶粒尺寸*/
1、/*磨粒步骤之间的延迟*/
0, /*波速*/
0, /*循环次数或重复次数*/
1、/*步数为图案刷*/
3、/*最大步长为图案刷*/
假的,/ *做不使用透明度*/
0, /*透明颜色,黑色*/
3、/*棒宽度*/
RGB(255,0,0), /*棒颜色,红色*/
SRCCOPY);/* Windows光栅操作代码*/
如果(nRet != SUCCESS)
返回nRet;
nRet = L_EfxEffectBlt(hdcDest, /*句柄到目标DC */
0, /*目标矩形左上角的x坐标*/
0, /*目标矩形左上角的x坐标*/
位图。宽度,/*目标矩形宽度*/
位图。高度,/*目标矩形的高度*/
hd证监会,/*句柄到源设备上下文*/
0, /*源矩形左上角的x坐标*/
0, /*源矩形左上角的纵坐标*/
EFX_EFFECT_WIPE_R_TO_L, /*油漆效果使用*/
1、/*晶粒尺寸*/
1、/*磨粒步骤之间的延迟*/
0, /*波速*/
0, /*循环次数或重复次数*/
2、/*步数为图案刷*/
3、/*最大步长为图案刷*/
假的,/ *做不使用透明度*/
0, /*透明颜色,黑色*/
3、/*棒宽度*/
RGB(255,0,0), /*棒颜色,红色*/
SRCCOPY);/* Windows光栅操作代码*/
如果(nRet != SUCCESS)
返回nRet;
nRet = L_EfxEffectBlt(hdcDest, /*句柄到目标dc */
0, /*目标矩形左上角的x坐标*/
0, /*目标矩形左上角的x坐标*/
位图。宽度,/*目标矩形宽度*/
位图。高度,/*目标矩形的高度*/
hd证监会,/*句柄到源设备上下文*/
0, /*源矩形左上角的x坐标*/
0, /*源矩形左上角的纵坐标*/
EFX_EFFECT_WIPE_L_TO_R, /*油漆效果使用*/
1、/*晶粒尺寸*/
1、/*磨粒步骤之间的延迟*/
0, /*波速*/
0, /*循环次数或重复次数*/
3、/*步数为图案刷*/
3、/*最大步长为图案刷*/
假的,/ *做不使用透明度*/
0, /*透明颜色,黑色*/
3、/*棒宽度*/
RGB(255,0,0), /*棒颜色,红色*/
SRCCOPY);/* Windows光栅操作代码*/
如果(nRet != SUCCESS)
返回nRet;
/*恢复旧的调色板*/
如果(hPaintPal)
{
SelectPalette (hdcDest, hSavedPalette, FALSE);
DeleteObject (hPaintPal);
}
/*释放设备上下文*/
release asedc (hWnd, hdcDest);
DeleteDC (hdcSrc);
DeleteObject (hbmMem);
L_FreeBitmap(位图);
返回成功;
}
/*这个函数展示了如何使用波浪效果的L_EfxEffectBlt
L_INT EfxEffectBltSecondExample(HWND HWND)
{
L_INT nRet;
HDC画;/*设备上下文为当前窗口*/
HDC hdcSrc;/*设备上下文为源图像*/
BITMAPHANDLE位图;/*图像将是BLT */
HBITMAP hbmMem;/*图像将是BLT */
hSavedPalette = NULL;/*当前系统面板的临时副本*/
HPALETTE hPaintPal = NULL;/*我们将用来绘制*/的调色板
L_INT nBitsPerPixel;
/*获取设备上下文*/
hdcDest = GetDC (hWnd);
/*检查设备查看如果我们需要一个调色板
nBitsPerPixel = GetDeviceCaps(hdcDest, BITSPIXEL) * GetDeviceCaps(hdcDest, PLANES);
/*将图像加载到BLT */
/*加载图像为屏幕位深*/
nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT(“IMAGE1。CMP”)),位图,运算符(BITMAPHANDLE), (nBitsPerPixel <= 8) ?nBitsPerPixel: 24, ORDER_BGR, NULL, NULL);
如果(nRet != SUCCESS)
返回nRet;
/*创建源DC */
hd证监会= CreateCompatibleDC(hdcDest);
/*将图像转换为DDB并将其选择为源dc */
hbmMem = l_converttodb (hdcDest, &Bitmap);
hbmMem = (HBITMAP)SelectObject(hd证监会,hbmMem);
如果(nBitsPerPixel <=8)
{
hPaintPal = L_CreatePaintPalette(hdcDest, &Bitmap);
hSavedPalette = SelectPalette (hdcDest, hPaintPal, FALSE);
/*实现调色板*/
RealizePalette(画);
}
nRet = L_EfxEffectBlt(hdcDest, /*句柄到目标dc */
0, /*目标矩形左上角的x坐标*/
0, /*目标矩形左上角的x坐标*/
位图。宽度,/*目标矩形宽度*/
位图。高度,/*目标矩形的高度*/
hd证监会,/*句柄到源设备上下文*/
0, /*源矩形左上角的x坐标*/
0, /*源矩形左上角的纵坐标*/
EFX_EFFECT_WAVE_TB, /*渲染效果使用*/
1、/*晶粒尺寸*/
1、/*磨粒步骤之间的延迟*/
20, /*波速*/
1、/*循环次数或重复次数*/
1、/*步数为图案刷*/
3、/*最大步长为图案刷*/
假的,/ *做不使用透明度*/
0, /*透明颜色,黑色*/
3、/*棒宽度*/
RGB(255,0,0), /*棒颜色,红色*/
SRCCOPY);/* Windows光栅操作代码*/
如果(nRet != SUCCESS)
返回nRet;
/*恢复旧的调色板*/
如果(hPaintPal)
{
SelectPalette (hdcDest, hSavedPalette, FALSE);
DeleteObject (hPaintPal);
}
/*释放设备上下文*/
release asedc (hWnd, hdcDest);
DeleteDC (hdcSrc);
DeleteObject (hbmMem);
L_FreeBitmap(位图);
返回成功;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。