易IDE视觉库插件开发文档

插件开发


绘画相关API

<p>[toc]</p> <hr /> <h3>iDraw_canvas_isDxRender <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 判断当前程序是否使用DX渲染 bool iDraw_canvas_isDxRender();</code></pre> <hr /> <h3>iDrawD2D_APICALL ExSetLastError <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置最后错误 int iDrawD2D_APICALL ExSetLastError(int code);</code></pre> <hr /> <h3>iDrawD2D_APICALL ExGetLastError <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取最后错误 int iDrawD2D_APICALL ExGetLastError();</code></pre> <hr /> <h3>iDraw_canvas_destroy <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 销毁绘画画布, 调用后会把传递进来的值修改为0 bool iDraw_canvas_destroy(LPCANVAS&amp; hCanvas);</code></pre> <hr /> <h3>iDraw_canvas_create <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 创建一个绘画画布, 如果绘画目标的尺寸改变, 应该调用 _canvas_resize() 来调整尺寸 // hWnd = 窗口句柄, 可以为0, 为了兼容D2D1.0使用的参数 // width = 画布宽度 // height = 画布高度 LPCANVAS iDraw_canvas_create(HWND hWnd, UINT width, UINT height);</code></pre> <hr /> <h3>iDraw_canvas_begindraw <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 开始绘画, 绘画前必须调用, 调用后才可以进行绘画操作, 结束绘画时必须调用 _canvas_enddraw() 来提交绘画结果 // hCanvas = 画布句柄 bool iDraw_canvas_begindraw(const LPCANVAS hCanvas);</code></pre> <hr /> <h3>iDraw_canvas_enddraw <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 结束绘画, 返回绘画是否有错误, 如果有错误可以调用 ExGetLastError() 获取错误码, 如果错误码是 D2DERR_RECREATE_TARGET 则需要重新创建D2D资源了 // hCanvas = 画布句柄 bool iDraw_canvas_enddraw(const LPCANVAS hCanvas);</code></pre> <hr /> <h3>iDraw_canvas_resize <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 重新调整画布尺寸 // hCanvas = 画布句柄 // cx = 新的画布宽度 // cy = 新的画布高度 bool iDraw_canvas_resize(const LPCANVAS hCanvas, int cx, int cy);</code></pre> <hr /> <h3>iDraw_canvas_getsize <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取画布的尺寸 // hCanvas = 画布句柄 // pWidth = 接收画布宽度的指针, 为0则不接收 // pHeight = 接收画布高度的指针, 为0则不接收 bool iDraw_canvas_getsize(const LPCANVAS hCanvas, UINT* pWidth, UINT* pHeight);</code></pre> <hr /> <h3>iDraw_canvas_getdc <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取画布对应的GDI HDC // 只能在 _canvas_begindraw() 和 _canvas_enddraw() 之间调用 // 在调用 _canvas_enddraw() 前必须调用 _canvas_releasedc() 进行释放, 否则 _canvas_enddraw() 将调用失败 // hCanvas = 画布句柄 HDC iDraw_canvas_getdc(const LPCANVAS hCanvas);</code></pre> <hr /> <h3>iDraw_canvas_releasedc <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 释放 _canvas_getdc() 获取的HDC, 如果有调用 _canvas_getdc(), 则必须调用这个函数释放 // hCanvas = 画布句柄 void iDraw_canvas_releasedc(const LPCANVAS hCanvas);</code></pre> <hr /> <h3>iDraw_canvas_clear <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 清除画布 // hCanvas = 画布句柄 // argb = 清除画布时填充的ARGB颜色, 0=透明 bool iDraw_canvas_clear(const LPCANVAS hCanvas, ARGB argb);</code></pre> <hr /> <h3>iDraw_canvas_flush <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 执行所有挂起的绘图命令 // hCanvas = 画布句柄 bool iDraw_canvas_flush(const LPCANVAS hCanvas);</code></pre> <hr /> <h3>iDraw_canvas_SetTarget <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置当前渲染的图像, 设置之后绘画操作会保存到 image 参数里, 类似与GDI的位图 // hCanvas = 画布句柄 // image = 图像句柄 bool iDraw_canvas_SetTarget(const LPCANVAS hCanvas, LPEX_IMAGE image);</code></pre> <hr /> <h3>iDraw_canvas_ReTarget <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 还原当前渲染图像 // hCanvas = 画布句柄 bool iDraw_canvas_ReTarget(const LPCANVAS hCanvas);</code></pre> <hr /> <h3>iDraw_canvas_GetTarget <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取当前渲染图像句柄, 返回的句柄不使用时需要调用 _canvas_FreeTarget() 进行释放 // hCanvas = 画布句柄 LPEX_IMAGE iDraw_canvas_GetTarget(const LPCANVAS hCanvas);</code></pre> <hr /> <h3>iDraw_canvas_FreeTarget <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 释放 _canvas_GetTarget() 返回的图像句柄 // hCanvas = 画布句柄 // image = _canvas_GetTarget() 返回的值 void iDraw_canvas_FreeTarget(const LPCANVAS hCanvas, LPEX_IMAGE image);</code></pre> <hr /> <h3>iDraw_canvas_translate <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 平移 // hCanvas = 画布句柄 // x, y = 平移的横向纵向坐标 bool iDraw_canvas_translate(const LPCANVAS hCanvas, float x, float y);</code></pre> <hr /> <h3>iDraw_canvas_scale <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 缩放 // hCanvas = 画布句柄 // x, y = 缩放的坐标点 // scaleX, scaleY = 缩放的横向纵向比例 bool iDraw_canvas_scale(const LPCANVAS hCanvas, float x, float y, float scaleX, float scaleY);</code></pre> <hr /> <h3>iDraw_canvas_rotate <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 旋转 // hCanvas = 画布句柄 // x, y = 旋转的坐标点 // rotate = 旋转的角度, 负数则反向旋转 bool iDraw_canvas_rotate(const LPCANVAS hCanvas, float x, float y, float rotate);</code></pre> <hr /> <h3>iDraw_canvas_drawRectangle <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 绘画矩形 // hCanvas = 画布句柄 // hPen = 边框画笔 // prc = RECT_F 矩形指针 bool iDraw_canvas_drawRectangle(const LPCANVAS hCanvas, const LPEX_PEN hPen, const LPCRECT_F prc);</code></pre> <hr /> <h3>iDraw_canvas_fillRectangle <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 填充矩形 // hCanvas = 画布句柄 // hBrush = 填充的画刷 // prc = RECT_F 矩形指针 bool iDraw_canvas_fillRectangle(const LPCANVAS hCanvas, const LPEX_BRUSH hBrush, const LPCRECT_F prc);</code></pre> <hr /> <h3>iDraw_canvas_drawEllipse <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 绘画椭圆 // hCanvas = 画布句柄 // hPen = 边框画笔 // prc = ELLIPSE_F 椭圆位置指针, 记录一个中心点和原的宽度和高度 bool iDraw_canvas_drawEllipse(const LPCANVAS hCanvas, const LPEX_PEN hPen, const LPCELLIPSE_F prc);</code></pre> <hr /> <h3>iDraw_canvas_fillEllipse <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 填充椭圆 // hCanvas = 画布句柄 // hBrush = 填充画刷 // prc = ELLIPSE_F 椭圆位置指针, 记录一个中心点和原的宽度和高度 bool iDraw_canvas_fillEllipse(const LPCANVAS hCanvas, const LPEX_BRUSH hBrush, const LPCELLIPSE_F prc);</code></pre> <hr /> <h3>iDraw_canvas_drawRoundedRectangle <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 绘画圆角矩形 // hCanvas = 画布句柄 // hPen = 边框画笔 // prcRounded = RECTROUNDED_F 圆角矩形指针 bool iDraw_canvas_drawRoundedRectangle(const LPCANVAS hCanvas, const LPEX_PEN hPen, const LPCRECTROUNDED_F prcRounded);</code></pre> <hr /> <h3>iDraw_canvas_fillRoundedRectangle <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 填充圆角矩形 // hCanvas = 画布句柄 // hBrush = 填充画刷 // prcRounded = RECTROUNDED_F 圆角矩形指针 bool iDraw_canvas_fillRoundedRectangle(const LPCANVAS hCanvas, const LPEX_BRUSH hBrush, const LPCRECTROUNDED_F prcRounded);</code></pre> <hr /> <h3>iDraw_canvas_drawLine <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 绘画直线 // hCanvas = 画布句柄 // hPen = 线条画笔 // ppt = 线条坐标 bool iDraw_canvas_drawLine(const LPCANVAS hCanvas, const LPEX_PEN hPen, const LPCLINEPOINT_F ppt);</code></pre> <hr /> <h3>iDraw_canvas_drawpath <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 绘画路径 // hCanvas = 画布句柄 // hPen = 边框画笔 // path = 路径指针 bool iDraw_canvas_drawpath(const LPCANVAS hCanvas, const LPEX_PEN hPen, const LPEX_PATH path);</code></pre> <hr /> <h3>iDraw_canvas_fillpath <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 填充路径 // hCanvas = 画布句柄 // hBrush = 填充画刷 // path = 路径指针 bool iDraw_canvas_fillpath(const LPCANVAS hCanvas, const LPEX_BRUSH hBrush, const LPEX_PATH path);</code></pre> <hr /> <h3>iDraw_canvas_drawimage <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 绘画图像, 把整个图像绘画到画布指定的位置, 不会对图像进行缩放 // hCanvas = 画布句柄 // image = 图像句柄 // left = 绘画到画布上的左边位置 // top = 绘画到画布上的顶边位置 // alpha = 透明度, 0=完全透明, 255=完全不透明 bool iDraw_canvas_drawimage(const LPCANVAS hCanvas, LPEX_IMAGE image, float left, float top, BYTE alpha);</code></pre> <hr /> <h3>iDraw_canvas_drawimagerect <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 绘画图像, 把整个图像绘画到画布指定的位置, 如果指定的大小和图像的不同, 则会缩放 // hCanvas = 画布句柄 // image = 图像句柄 // left = 绘画到画布上的左边位置 // top = 绘画到画布上的顶边位置 // right = 绘画到画布上的右边位置 // bottom = 绘画到画布上的底边位置 // alpha = 透明度, 0=完全透明, 255=完全不透明 bool iDraw_canvas_drawimagerect(const LPCANVAS hCanvas, LPEX_IMAGE image, float left, float top, float right, float bottom, BYTE alpha);</code></pre> <hr /> <h3>iDraw_canvas_drawimagerectrect <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 绘画图像, 从图像的某个位置绘画到画布某个位置, 尺寸不同会缩放 // hCanvas = 画布句柄 // image = 图像句柄 // dstLeft = 绘画到画布上的左边位置 // dstTop = 绘画到画布上的顶边位置 // dstRight = 绘画到画布上的右边位置 // dstBottom = 绘画到画布上的底边位置 // srcLeft = 从图像的左边位置 // srcTop = 从图像的顶边位置 // srcRight = 从图像的右边位置 // srcBottom = 从图像的底边位置 // alpha = 透明度, 0=完全透明, 255=完全不透明 bool iDraw_canvas_drawimagerectrect(const LPCANVAS hCanvas, LPEX_IMAGE image, float dstLeft, float dstTop, float dstRight, float dstBottom, float srcLeft, float srcTop, float srcRight, float srcBottom, BYTE alpha);</code></pre> <hr /> <h3>iDraw_canvas_drawimagegridPadding <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 绘画九宫图像, 尺寸不同会缩放 // hCanvas = 画布句柄 // image = 图像句柄 // dstLeft = 绘画到画布上的左边位置 // dstTop = 绘画到画布上的顶边位置 // dstRight = 绘画到画布上的右边位置 // dstBottom = 绘画到画布上的底边位置 // srcLeft = 从图像的左边位置 // srcTop = 从图像的顶边位置 // srcRight = 从图像的右边位置 // srcBottom = 从图像的底边位置 // gridPaddingLeft = 九宫区域左边 // gridPaddingTop = 九宫区域顶边 // gridPaddingRight = 九宫区域右边 // gridPaddingBottom = 九宫区域底边 // alpha = 透明度, 0=完全透明, 255=完全不透明 bool iDraw_canvas_drawimagegridPadding(const LPCANVAS hCanvas, LPEX_IMAGE image, float dstLeft, float dstTop, float dstRight, float dstBottom, float srcLeft, float srcTop, float srcRight, float srcBottom, float gridPaddingLeft, float gridPaddingTop, float gridPaddingRight, float gridPaddingBottom, DWORD dwFlags, BYTE alpha);</code></pre> <hr /> <h3>iDraw_canvas_calctextsize <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 计算文本尺寸 // hCanvas = 画布句柄 // font = 字体句柄 // text = 需要计算的文本 // textLen = 文本长度, 如果为-1则text必须是\\0结尾 // textFormat = 文本对齐格式, 参考 DT_ 开头常量, 与 win32API DrawText一样 // layoutWidth = 布局宽度, 计算文本会根据这个宽度计算行数, 行数不同高度就会不同 // layoutHeight = 布局高度 // pWidth = 接收计算出的文本宽度 // pHeight = 接收计算出的文本高度 bool iDraw_canvas_calctextsize(const LPCANVAS hCanvas, LPEX_FONT font, LPCWSTR text, size_t textLen, DWORD textFormat, float layoutWidth, float layoutHeight, float* pWidth, float* pHeight);</code></pre> <hr /> <h3>iDraw_canvas_drawtext <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 绘画文本 // hCanvas = 画布句柄 // font = 字体句柄 // hbrText = 文本画刷 // text = 需要绘画的文本 // textLen = 文本长度, 如果为-1则text必须是\\0结尾 // textFormat = 文本对齐格式, 参考 DT_ 开头常量, 与 win32API DrawText一样 // prc = 文本绘画的位置 bool iDraw_canvas_drawtext(const LPCANVAS hCanvas, LPEX_FONT font, LPEX_BRUSH hbrText, LPCWSTR text, size_t textLen, DWORD textFormat, const RECT_F* prc);</code></pre> <hr /> <h3>iDraw_canvas_drawtextex <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 绘画文本 // hCanvas = 画布句柄 // font = 字体句柄 // hbrText = 文本画刷 // text = 需要绘画的文本 // textLen = 文本长度, 如果为-1则text必须是\\0结尾 // textFormat = 文本对齐格式, 参考 DT_ 开头常量, 与 win32API DrawText一样 // prc = 文本绘画的位置 // iGlowsize = 暂未使用, 传递0 // crShadow = 暂未使用, 传递0 // lParam = 暂未使用, 传递0 // prclayout = 暂未使用, 传递0 // outrcText = 接收绘画文本的区域 bool iDraw_canvas_drawtextex(const LPCANVAS hCanvas, LPEX_FONT font, LPEX_BRUSH hbrText, LPCWSTR text, size_t textLen, DWORD textFormat, const RECT_F* rc, DWORD iGlowsize, ARGB crShadow, LPDRAWTEXTPARAMS lParam, const RECT_F* prclayout, RECT_F* outrcText);</code></pre> <hr /> <h3>iDraw_canvas_bitblt <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 位拷贝, 拷贝数据到画布上 // hCanvas = 画布句柄, 拷贝到这个画布上 // x = 拷贝到画布的左边位置 // y = 拷贝到画布的左边位置 // cx = 拷贝到画布的宽度 // cy = 拷贝到画布的高度 // sCanvas = 从哪个画布上拷贝 // x1 = 从 sCanvas 画布上的哪个位置开始拷贝 // y1 = 从 sCanvas 画布上的哪个位置开始拷贝 // rop = 光栅操作代码, 一般是 SRCCOPY, D2D渲染忽略这个参数, D2D只支持 SRCCOPY bool iDraw_canvas_bitblt(const LPCANVAS hCanvas, int x, int y, int cx, int cy, const LPCANVAS sCanvas, int x1, int y1, DWORD rop);</code></pre> <hr /> <h3>iDraw_canvas_alphablend <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 混合拷贝, 拷贝数据到画布上 // hCanvas = 画布句柄, 拷贝到这个画布上 // xoriginDest = 拷贝到画布的左边位置 // yoriginDest = 拷贝到画布的左边位置 // wDest = 拷贝到画布的宽度 // hDest = 拷贝到画布的高度 // sCanvas = 从哪个画布上拷贝 // xoriginSrc = 从 sCanvas 画布上的哪个位置开始拷贝 // yoriginSrc = 从 sCanvas 画布上的哪个位置开始拷贝 // wSrc = 从 sCanvas 画布上的哪个位置开始拷贝 // hSrc = 从 sCanvas 画布上的哪个位置开始拷贝 // Alpha = 透明度 bool iDraw_canvas_alphablend(const LPCANVAS hCanvas,</code></pre> <hr /> <h3>iDraw_canvas_setrgn <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 暂未实现, 请不要调用 bool iDraw_canvas_setrgn(const LPCANVAS hCanvas, float left, float top, float right, float bottom, int mode);</code></pre> <hr /> <h3>iDraw_canvas_setClip <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置裁剪区, 设置后绘画的内容只会在设置的区域里显示 // left = 裁剪区的左边 // top = 裁剪区的顶边 // right = 裁剪区的右边 // bottom = 裁剪区的底边 // mode = 裁剪区模式, 一般填0, 现在内部暂时还没有为D2D和GDI+做个统一的标准, D2D渲染请查看D2D相关的常量, GDI+请参阅GDI+的常量 bool iDraw_canvas_setClip(const LPCANVAS hCanvas, float left, float top, float right, float bottom, int mode);</code></pre> <hr /> <h3>iDraw_canvas_resetClip <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 还原裁剪区, 把上一个设置的裁剪区还原 bool iDraw_canvas_resetClip(const LPCANVAS hCanvas);</code></pre> <hr /> <h3>iDraw_canvas_SetAntialiasMode <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置抗锯齿模式, 0=关闭抗锯齿, 1=开启 // 此函数调与 _canvas_SetSmoothingMode, 功能一模一样, 多加一个是为了和d2d名字一样 bool iDraw_canvas_SetAntialiasMode(const LPCANVAS hCanvas, int mode, int* oldMode);</code></pre> <hr /> <h3>iDraw_canvas_SetSmoothingMode <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置抗锯齿模式, 0=关闭抗锯齿, 1=开启 // 此函数调用 _canvas_SetAntialiasMode 实现, 功能一模一样, 多加一个是为了和gdi+名字一样 bool iDraw_canvas_SetSmoothingMode(const LPCANVAS hCanvas, int mode, int* oldMode);</code></pre> <hr /> <h3>iDraw_canvas_SetTextAntialiasMode <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置字体抗锯齿模式, 0=默认, 1=ClearType抗锯齿(最高质量), 2=灰度抗锯齿, 3=不使用抗锯齿 // 此函数调与 _canvas_SetTextRenderingHint, 功能一模一样, 多加一个是为了和d2d名字一样 bool iDraw_canvas_SetTextAntialiasMode(const LPCANVAS hCanvas, int mode, int* oldMode);</code></pre> <hr /> <h3>iDraw_canvas_SetTextRenderingHint <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置字体抗锯齿模式, 0=默认, 1=ClearType抗锯齿(最高质量), 2=灰度抗锯齿, 3=不使用抗锯齿 // 此函数调用 _canvas_SetTextAntialiasMode 实现, 功能一模一样, 多加一个是为了和gdi+名字一样 bool iDraw_canvas_SetTextRenderingHint(const LPCANVAS hCanvas, int mode, int* oldMode);</code></pre> <hr /> <h3>iDraw_brush_create <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 创建纯色画刷, 纯色画刷可以调用 _brush_setcolor() 改变画刷颜色 // color = ARGB颜色 LPEX_BRUSH iDraw_brush_create(ARGB color);</code></pre> <hr /> <h3>iDraw_brush_create_LinearGradient <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 创建线性渐变画刷 // pt1,pt2 = 起点, 终点坐标 // color,colorCount = 颜色数组, 颜色数组数量 // fillMode = 填充模式 // pRatios, ratiosCount = 渐变比例数组, 取值范围0-1, 数组数量 LPEX_BRUSH iDraw_brush_create_LinearGradient(const POINT_F&amp; pt1, const POINT_F&amp; pt2, ARGB* color, DWORD colorCount, int fillMode = 0, const float* pRatios = 0, DWORD ratiosCount = 0);</code></pre> <hr /> <h3>iDraw_brush_create_RadialGradient <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 创建放射渐变画刷, 从中心点往外扩散渐变 // pos = 包含中心点以及向外扩展的长度 // color,colorCount = 颜色数组, 颜色数组数量 // fillMode = 填充模式 // pRatios, ratiosCount = 渐变比例数组, 取值范围0-1, 数组数量 LPEX_BRUSH iDraw_brush_create_RadialGradient(const ELLIPSE_F* pos, ARGB* color, DWORD colorCount, int fillMode = 0, const float* pRatios = 0, DWORD ratiosCount = 0);</code></pre> <hr /> <h3>iDraw_brush_destroy <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 销毁画刷, 销毁后会把传递进来的值复制为0 bool iDraw_brush_destroy(LPEX_BRUSH&amp; pBrush);</code></pre> <hr /> <h3>iDraw_brush_setcolor <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置纯色画刷的画刷颜色, 非纯色画刷会设置失败 // brush = 纯色画刷的句柄 // color = 新的画刷颜色 bool iDraw_brush_setcolor(LPEX_BRUSH brush, ARGB color);</code></pre> <hr /> <h3>iDraw_brush_getcolor <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取纯色画刷的颜色, 返回的是ARGB颜色 // brush = 纯色画刷的句柄 DWORD iDraw_brush_getcolor(LPEX_BRUSH brush);</code></pre> <hr /> <h3>iDraw_brush_setstartpoint <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置渐变画刷起始位置, GDI+暂未支持 // brush = 线性渐变画刷 // x, y = 新的起始位置 bool iDraw_brush_setstartpoint(LPEX_BRUSH brush, float x, float y);</code></pre> <hr /> <h3>iDraw_brush_setendpoint <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置渐变画刷结束位置, GDI+暂未支持 // brush = 线性渐变画刷 // x, y = 新的结束位置 bool iDraw_brush_setendpoint(LPEX_BRUSH brush, float x, float y);</code></pre> <hr /> <h3>iDraw_brush_getstartpoint <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取渐变画刷起始位置, GDI+暂未支持 // brush = 线性渐变画刷 // x, y = 接收新的起始位置指针, 为0则不获取 bool iDraw_brush_getstartpoint(LPEX_BRUSH brush, float* x, float* y);</code></pre> <hr /> <h3>iDraw_brush_getendpoint <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取渐变画刷结束位置, GDI+暂未支持 // brush = 线性渐变画刷 // x, y = 接收新的结束位置指针, 为0则不获取 bool iDraw_brush_getendpoint(LPEX_BRUSH brush, float* x, float* y);</code></pre> <hr /> <h3>iDraw_brush_setcenter <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置放射渐变画刷中心坐标, GDI+暂未支持 // brush = 放射渐变画刷 // x, y = 新的中心点位置 bool iDraw_brush_setcenter(LPEX_BRUSH brush, float x, float y);</code></pre> <hr /> <h3>iDraw_brush_GetCenter <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取放射渐变画刷中心坐标, GDI+暂未支持 // brush = 放射渐变画刷 // x, y = 接收新的中心点位置指针, 为0则不获取 bool iDraw_brush_GetCenter(LPEX_BRUSH brush, float* x, float* y);</code></pre> <hr /> <h3>iDraw_brush_SetGradientOriginOffset <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置放射渐变原点偏移, GDI+暂未支持 // brush = 放射渐变画刷 // x, y = 新的偏移位置 bool iDraw_brush_SetGradientOriginOffset(LPEX_BRUSH brush, float x, float y);</code></pre> <hr /> <h3>iDraw_brush_GetGradientOriginOffset <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取放射渐变原点偏移, GDI+暂未支持 // brush = 放射渐变画刷 // x, y = 接收新的偏移位置指针, 为0则不获取 bool iDraw_brush_GetGradientOriginOffset(LPEX_BRUSH brush, float* x, float* y);</code></pre> <hr /> <h3>iDraw_brush_SetRadiusX <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置放射渐变画刷横向半径, GDI+暂未支持 // brush = 放射渐变画刷 // x = 中心点横向半径 bool iDraw_brush_SetRadiusX(LPEX_BRUSH brush, float x);</code></pre> <hr /> <h3>iDraw_brush_SetRadiusY <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置放射渐变画刷纵向半径, GDI+暂未支持 // brush = 放射渐变画刷 // y = 中心点纵向半径 bool iDraw_brush_SetRadiusY(LPEX_BRUSH brush, float y);</code></pre> <hr /> <h3>iDraw_brush_GetRadiusX <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取放射渐变画刷横向半径, GDI+暂未支持 // brush = 放射渐变画刷 float iDraw_brush_GetRadiusX(LPEX_BRUSH brush);</code></pre> <hr /> <h3>iDraw_brush_GetRadiusY <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取放射渐变画刷纵向半径, GDI+暂未支持 // brush = 放射渐变画刷 float iDraw_brush_GetRadiusY(LPEX_BRUSH brush);</code></pre> <hr /> <h3>iDraw_pen_create <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 创建画笔 // color = 画笔ARGB颜色 // width = 画笔宽度 // style = 画笔样式, D2D1_DASH_STYLE/Gdiplus::DashStyle枚举常量的值, 0=实线,1=划线,2=点线,3=点划线,4=点点划线,5=自定义, 请使用 dashes 参数 // dashes = 自定义画笔数组, [0]=有线部分,[1]=空白部分,[2]=有线部分,[3]=空白部分....成员数需要 dashesCount 指定 // dashesCount = dashes 这个数组的成员数 LPEX_PEN iDraw_pen_create(ARGB color, float width = 1.0f, int style = 0, const float* dashes = 0, int dashesCount = 0);</code></pre> <hr /> <h3>iDraw_pen_destroy <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 销毁画笔, 销毁后会把传递进来的值复制为0 // pen = 画笔句柄 bool iDraw_pen_destroy(LPEX_PEN&amp; pPen);</code></pre> <hr /> <h3>iDraw_pen_setcolor <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置画笔的颜色 // pen = 画笔句柄 // color = 新的画笔ARGB颜色 bool iDraw_pen_setcolor(LPEX_PEN pen, ARGB color);</code></pre> <hr /> <h3>iDraw_pen_getcolor <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取画笔的颜色 // pen = 画笔句柄 DWORD iDraw_pen_getcolor(LPEX_PEN pen);</code></pre> <hr /> <h3>iDraw_pen_SetWidth <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置画笔的宽度 // pen = 画笔句柄 // width = 画笔宽度 bool iDraw_pen_SetWidth(LPEX_PEN pen, float width);</code></pre> <hr /> <h3>iDraw_pen_GetWidth <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取画笔的宽度 // pen = 画笔句柄 float iDraw_pen_GetWidth(LPEX_PEN pen);</code></pre> <hr /> <h3>iDraw_pen_SetDashStyle <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置画笔线条样式 // pen = 画笔句柄 // style = 0=实线, 1=划线{2, 2}, 2=点线{0, 2}, 3=点划线{2, 2, 0, 2}, 4=点点划线{2, 2, 0, 2, 0, 2}, 5=自定义 Gdiplus::DashStyle 或者 D2D1_DASH_STYLE 这两个枚举常量的成员 // dashes = 点线的数组, 划线={2,2}, 点线={0,2}, 点划线={2,2,0,2}, 点点划线={2,2,0,2,0,2}, 其他请自定义 // dashesCount = 数组成员数 bool iDraw_pen_SetDashStyle(LPEX_PEN pen, int style = 0, float* dashes = 0, int dashesCount = 0);</code></pre> <hr /> <h3>iDraw_path_create <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 创建路径 // fillMode = 未使用, 请填0 LPEX_PATH iDraw_path_create(int fillMode);</code></pre> <hr /> <h3>iDraw_path_createroundedrectangle <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 创建圆角矩形路径 // rcRounded = 圆角矩形 // fillMode = 未使用, 请填0 LPEX_PATH iDraw_path_createroundedrectangle(const LPCRECTROUNDED_F prcRounded, int fillMode);</code></pre> <hr /> <h3>iDraw_path_createrectangle <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 创建直角矩形路径 // prc = 直角矩形 // fillMode = 未使用, 请填0 LPEX_PATH iDraw_path_createrectangle(const LPCRECT_F prc, int fillMode);</code></pre> <hr /> <h3>iDraw_path_destroy <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 销毁画笔, 销毁后会把传递进来的值复制为0 // path = 路径句柄 bool iDraw_path_destroy(LPEX_PATH&amp; path);</code></pre> <hr /> <h3>iDraw_path_beginfigure <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 在指定点开始一个新路径 // path = 路径句柄 // ppt = 坐标点指针, 为0则不使用 bool iDraw_path_beginfigure(LPEX_PATH path, const LPCPOINT_F ppt);</code></pre> <hr /> <h3>iDraw_path_endfigure <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 结束当前路径 // path = 路径句柄 bool iDraw_path_endfigure(LPEX_PATH path);</code></pre> <hr /> <h3>iDraw_path_reset <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 重置为空路径 // path = 路径句柄 bool iDraw_path_reset(LPEX_PATH path);</code></pre> <hr /> <h3>iDraw_path_addarc <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 添加弧 // path = 路径句柄 // bool iDraw_path_addarc(LPEX_PATH path, float x1, float y1, float x2, float y2, float radiusX, float radiusY, bool fClockwise);</code></pre> <hr /> <h3>iDraw_path_addbezier <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 添加贝赛尔曲线 // path = 路径句柄 // pt1, pt2, pt3, pt4 = 4个坐标点 bool iDraw_path_addbezier(LPEX_PATH path, const POINT_F&amp; pt1, const POINT_F&amp; pt2, const POINT_F&amp; pt3, const POINT_F&amp; pt4);</code></pre> <hr /> <h3>iDraw_path_addline <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 添加直线 // path = 路径句柄 // pt1, pt2 = 起始点坐标和结束点坐标 bool iDraw_path_addline(LPEX_PATH path, const POINT_F&amp; pt1, const POINT_F&amp; pt2);</code></pre> <hr /> <h3>iDraw_path_addrect <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 添加矩形 // path = 路径句柄 // rc = 矩形 bool iDraw_path_addrect(LPEX_PATH path, const RECT_F&amp; rc);</code></pre> <hr /> <h3>iDraw_path_addroundedrect <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 添加圆角矩形 // path = 路径句柄 // rc = 矩形 // radiusTopLeft = 左上角圆角度数 // radiusTopRight = 右上角圆角度数 // radiusBottomLeft = 左下角圆角度数 // radiusBottomRight = 右下角圆角度数 bool iDraw_path_addroundedrect(LPEX_PATH path, const RECT_F&amp; rc, float radiusTopLeft, float radiusTopRight, float radiusBottomLeft, float radiusBottomRight);</code></pre> <hr /> <h3>iDraw_path_open <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 打开路径, 打开后才能往路径里添加 // path = 路径句柄 bool iDraw_path_open(LPEX_PATH path);</code></pre> <hr /> <h3>iDraw_path_close <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 关闭路径, 添加完毕后, 使用路径前请关闭路径 // path = 路径句柄 bool iDraw_path_close(LPEX_PATH path);</code></pre> <hr /> <h3>iDraw_path_getbounds <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 取路径边界矩形 // path = 路径句柄 // prc = 接收路径边界矩形 bool iDraw_path_getbounds(LPEX_PATH path, LPRECT_F prc);</code></pre> <hr /> <h3>iDraw_path_hittest <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 测试坐标是否在路径范围内 // path = 路径句柄 // pt = 坐标点 bool iDraw_path_hittest(LPEX_PATH path, const POINT_F&amp; pt);</code></pre> <hr /> <h3>iDraw_img_destroy <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 图片 bool iDraw_img_destroy(LPEX_IMAGE&amp; img);</code></pre> <hr /> <h3>iDraw_img_create <code>最低要求版本: v1.0.801</code></h3> <pre><code>LPEX_IMAGE iDraw_img_create(UINT width, UINT height);</code></pre> <hr /> <h3>iDraw_img_create_frommemory <code>最低要求版本: v1.0.801</code></h3> <pre><code>LPEX_IMAGE iDraw_img_create_frommemory(const void* pData, DWORD len);</code></pre> <hr /> <h3>iDraw_img_create_fromfile <code>最低要求版本: v1.0.801</code></h3> <pre><code>LPEX_IMAGE iDraw_img_create_fromfile(LPCWSTR file);</code></pre> <hr /> <h3>iDraw_img_create_frombitmap <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 从gdi位图创建图像 // hBitmap = gdi位图 // hPalette = 调色板句柄 // fPreAlpha = 是否使用透明通道, true = 使用, false = 使用预乘的透明通道 LPEX_IMAGE iDraw_img_create_frombitmap(HBITMAP hBitmap, HPALETTE hPalette, bool fPreAlpha);</code></pre> <hr /> <h3>iDraw_img_create_formicon <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 从gdi图标创建图像 // hIcon = GDI图标句柄 LPEX_IMAGE iDraw_img_create_formicon(HICON hIcon);</code></pre> <hr /> <h3>iDraw_img_create_fromstream <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 从流对象创建图像 // stream = 流对象指针 LPEX_IMAGE iDraw_img_create_fromstream(IStream* stream);</code></pre> <hr /> <h3>iDraw_img_getsize <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取图像尺寸 // image = 图像句柄 // pWidth = 接收图像宽度的指针, 为0则不获取 // pHeight = 接收图像高度的指针, 为0则不获取 bool iDraw_img_getsize(LPEX_IMAGE image, UINT* pWidth, UINT* pHeight);</code></pre> <hr /> <h3>iDraw_img_width <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取图像宽度 // image = 图像句柄 UINT iDraw_img_width(LPEX_IMAGE image);</code></pre> <hr /> <h3>iDraw_img_height <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取图像高度 // image = 图像句柄 UINT iDraw_img_height(LPEX_IMAGE image);</code></pre> <hr /> <h3>iDraw_img_copyrect <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 从当前图片拷贝一份新的图片出来, 返回新的图片句柄 // image = 图像句柄 // 4个参数分别为需要复制的左顶宽高, 如果宽度/高度等于0, 则使用图像的宽度/高度 LPEX_IMAGE iDraw_img_copyrect(LPEX_IMAGE image, UINT x, UINT y, UINT width, UINT height);</code></pre> <hr /> <h3>iDraw_img_copy <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 从图像拷贝一份新的图像出来, 返回新的图像句柄, 拷贝比重新创建速度要块 // image = 图像句柄 LPEX_IMAGE iDraw_img_copy(LPEX_IMAGE image);</code></pre> <hr /> <h3>iDraw_img_lock <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 锁定图像, 成功返回true, 失败返回false, 不使用时必须调用 _img_unlock 解锁图像 // image = 图像句柄 // x,y,width,height = 左顶宽高, 宽高为0时会自动获取图片大小 // flags = 1=读, 2=写, 3=读写 // lockData = 锁定图像数据, 解锁图像时需要使用 bool iDraw_img_lock(LPEX_IMAGE image, UINT x, UINT y, UINT width, UINT height, DWORD flags, EX_IMAGELOCK* lockData);</code></pre> <hr /> <h3>iDraw_img_unlock <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 解锁图像 // image = 图像句柄 // lockData = 锁定图像数据, 由 _img_lock 获得 bool iDraw_img_unlock(LPEX_IMAGE image, EX_IMAGELOCK* lockData);</code></pre> <hr /> <h3>iDraw_img_getframecount <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 取图像帧数 // image = 图像句柄 UINT iDraw_img_getframecount(LPEX_IMAGE image);</code></pre> <hr /> <h3>iDraw_img_selectactiveframe <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 设置当前活动帧 // image = 图像句柄 // index = 第几帧 bool iDraw_img_selectactiveframe(LPEX_IMAGE image, UINT index);</code></pre> <hr /> <h3>iDraw_img_save_frombitmap <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 从D2D位图指定左顶宽高获取图片或效果数据, 返回图片数据指针和尺寸, 需要调用 _img_free 释放 // pBitmap = D2D位图 // size = 接收返回图片数据的大小 // 左顶右底, 要保存的位置, 宽度/高度为0则使用位图的宽度/高度 LPBYTE iDraw_img_save_frombitmap(ID2D1Image* pBitmap, SIZE_T&amp; size, UINT left, UINT top, UINT right, UINT bottom);</code></pre> <hr /> <h3>iDraw_img_save_formcanvas <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 从绘画句柄里获取图片数据, 返回图片数据指针和尺寸, 需要调用 _img_free 释放 // size = 接收返回图片数据的大小 LPBYTE iDraw_img_save_formcanvas(const LPCANVAS hCanvas, SIZE_T&amp; size);</code></pre> <hr /> <h3>iDraw_img_save_formcanvasex <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 从画布句柄指定左顶宽高获取图片数据, 返回图片数据指针和尺寸, 需要调用 _img_free 释放 // hCanvas = 绘画句柄 // pSize = 接收返回图片数据的大小 // 左顶右底, 要保存的位置, 宽度/高度为0则使用画布句柄的宽度/高度 LPBYTE iDraw_img_save_formcanvasex(const LPCANVAS hCanvas, SIZE_T&amp; size, UINT left, UINT top, UINT right, UINT bottom);</code></pre> <hr /> <h3>iDraw_img_save <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 从图片句柄获取图片数据, 返回图片数据指针和尺寸, 需要调用 _img_free 释放 // image = 图像句柄 // size = 接收返回数据的尺寸, 单位是字节 LPBYTE iDraw_img_save(LPEX_IMAGE image, SIZE_T&amp; size);</code></pre> <hr /> <h3>iDraw_img_save_fromimage <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 从图片句柄指定左顶宽高获取图片数据, 返回图片数据指针和尺寸, 需要调用 _img_free 释放 // image = 图像句柄 // size = 接收返回数据的尺寸, 单位是字节 // 4个参数分别为需要复制的左顶宽高, 如果宽度/高度等于0, 则使用图像的宽度/高度 LPBYTE iDraw_img_save_fromimage(LPEX_IMAGE image, SIZE_T&amp; size, UINT left, UINT top, UINT right, UINT bottom);</code></pre> <hr /> <h3>iDraw_img_ToGdiBitmap <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 把图片转成gdi的位图 // image = 图像句柄 HBITMAP iDraw_img_ToGdiBitmap(LPEX_IMAGE image);</code></pre> <hr /> <h3>iDraw_img_free <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 释放 _img_save_xxx 返回的数据 void iDraw_img_free(LPBYTE ptr);</code></pre> <hr /> <h3>iDraw_font_create_logfont <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 字体 // 从LOGFONTW 里创建字体 // flags = 暂未使用, 填0 LPEX_FONT iDraw_font_create_logfont(const LPLOGFONTW logFont, DWORD flags);</code></pre> <hr /> <h3>iDraw_font_create <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 从字体名中创建字体, 如果参数都为0则创建默认字体 // name = 字体名字 // lfHeight = 字符高度, 如果需要转换成字体大小可以调用 _font_height2size() 来转换, 或者调用 _font_size2height() 把字体大小转成字符高度 // fontStyle = 字体风格, 多个风格请使用 或 或起来, 0=正常, 1=粗体, 2=斜体, 3=粗体斜体, 4=下划线, 8=删除线 LPEX_FONT iDraw_font_create(LPCWSTR name = L"微软雅黑", LONG lfHeight = 0, FONTSTYLE fontStyle = FONTSTYLE::FontStyleRegular);</code></pre> <hr /> <h3>iDraw_font_destroy <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 销毁字体, 销毁后会把传递进来的值复制为0 bool iDraw_font_destroy(LPEX_FONT&amp; font);</code></pre> <hr /> <h3>iDraw_font_height2size <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 字符高度转字体大小, 字符高度一般是 LOGFONT 的 lfHeight, 字体大小一般是易语言的字体大小 int iDraw_font_height2size(int height);</code></pre> <hr /> <h3>iDraw_font_size2height <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 字体大小转字符高度, 字符高度一般是 LOGFONT 的 lfHeight, 字体大小一般是易语言的字体大小 int iDraw_font_size2height(int size);</code></pre> <hr /> <h3>iDraw_font_GetFont <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 获取当前字体对象的GDI字体, 不允许调用 DeleteObject() 进行释放 HFONT iDraw_font_GetFont(LPEX_FONT font);</code></pre> <hr /> <h3>iDraw_rgn_destroy <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 销毁区域, 销毁后会把传递进来的值复制为0 bool iDraw_rgn_destroy(LPEX_RGN&amp; hRgn);</code></pre> <hr /> <h3>iDraw_rgn_create <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 创建矩形区域 // left = 左边 // top = 顶边 // right = 右边 // bottom = 底边 LPEX_RGN iDraw_rgn_create(float left, float top, float right, float bottom);</code></pre> <hr /> <h3>iDraw_rgn_create_round <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 创建圆角区域 // left = 左边 // top = 顶边 // right = 右边 // bottom = 底边 // radiusX = 圆角度数 // radiusY = 圆角度数 LPEX_RGN iDraw_rgn_create_round(float left, float top, float right, float bottom, float radiusX, float radiusY);</code></pre> <hr /> <h3>iDraw_rgn_combine <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 合并区域 // hRgnSrc = 要合并的区域 // hRgnDst = 要和 hRgnSrc 合并的区域 // nCombineMode = 合并模式, 0=并集, 1=交集, 2=异或, 其他=排除 // dstOffsetX, dstOffsetY = 平移的坐标, 不需要平移就填0 LPEX_RGN iDraw_rgn_combine(LPEX_RGN hRgnSrc, LPEX_RGN hRgnDst, DWORD nCombineMode, float dstOffsetX, float dstOffsetY);</code></pre> <hr /> <h3>iDraw_rgn_hittest <code>最低要求版本: v1.0.801</code></h3> <pre><code>// 测试指定坐标是否在区域内 bool iDraw_rgn_hittest(LPEX_RGN hRgn, float x, float y);</code></pre>

页面列表

ITEM_HTML