VisualFreeBasic代码_yGDI_位图

2026-1-20 / 0 评论 / 112 阅读

画图像,有2种方式
一、画图像文件
二、画资源里的图像
上面是整幅图像一起画,有时我们需要取图像里的部分再画。
一、加载图像:LoadImg
二、拷贝图像:DrawCopy

成员列表

   Sub InvertPixels(X As Long, Y As Long, W As Long, H As Long) '将指定的矩形中像素颜色翻转
   Function GetPixel(ByVal x As Long, ByVal y As Long) As Long '获取像素点颜色
   Function SetPixel(ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long '设置像素点颜色
   Sub DrawImgRes(hInst As HINSTANCE, ResName As CWSTR, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False) '直接画资源里的图片或ICO,必须是格式为.png,.jpg,.gif,.tiff,.ani, .ico, .cur 的图 {8.True 转换成灰度.False}{7.0 调高亮度百分比.50 从1到99.99 最高99}
   Sub DrawImgFile(FileName As CWSTR, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False) '直接画文件的图片 {7.True 转换成灰度.False}{6.0 调高亮度百分比.50 从1到99.99 最高99}
   Sub DrawImgBuffer(Buffer As Any Ptr, BufferSize As ULong, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False) '直接内存中文件数据的图片 {7.True 转换成灰度.False}{6.0 调高亮度百分比.50 从1到99.99 最高99}
   Sub LoadImgFile(FileName As CWSTR, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0) '加载文件图像到 m_bDc ,便于后面重复使用,再次加载将消耗前面加载的。 {3.True 转换成灰度.False}{2.0 调高亮度百分比.50 从1到99.99 最高99}
   Function LoadImgRes(hInst As HINSTANCE, ResName As CWSTR, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0) As HANDLE '加载资源图像到 m_bDc ,便于后面重复使用,成功返回图像句柄,失败返回0(再次加载将消耗前面加载的句柄)  {4.True 转换成灰度.False}{3.0 调高亮度百分比.50 从1到99.99 最高99}
   Sub LoadBmpRes(hInst As HINSTANCE, ResName As CWSTR, dimPercent As Long = 0, bGrayScale As Long = False) '加载资源中BMP图像到 m_bDc ,便于后面重复使用,再次加载将消耗前面加载的。 {4.True 转换成灰度.False}{3.0 调高亮度百分比.50 从1到99.99 最高99}
   Sub DrawCopyImg(xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, rop As DWORD = SRCCOPY) '描绘由LoadImg加载来的图,主要用来像画工具栏里的小按钮{9.SRCAND AND合并(光栅操作代码).SRCCOPY 直接拷贝.SRCERASE 目标取反合并.SRCINVERT Xor合并.SRCPAINT Or合并.WHITENESS 调色板1索引.BLACKNESS 调色板0索引.DSTINVERT 目标取反.MERGECOPY And源模式组合.MERGEPAINT Or反向源.NOTSRCCOPY 源取反拷贝 .NOTSRCERASE Or组合源,合成后取反.PATCOPY 模式拷贝.PATPAINT Or源取反与模式并.PATINVERT Xor源合并}
   Sub DrawCopyImgAlpha(xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, TeMeDu As Long)    '半透明 描绘由LoadImg加载来的图,TeMeDu为透明度
   Sub DrawCopyImgColor(xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, tColor As Long)    '扣色 描绘由LoadImg加载来的图
   Sub LoadImgBuffer(Buffer As Any Ptr, BufferSize As ULong, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0) '从内存中文件数据加载图片到像到 m_bDc ,便于后面重复使用,再次加载将销毁前面加载的。 {4.True 转换成灰度.False}{3.0 调高亮度百分比.50 从1到99.99 最高99}

InvertPixels 颜色翻转

(X As Long, Y As Long, W As Long, H As Long)
将指定的矩形中像素颜色翻转

GetPixel 获取像素点

(ByVal x As Long, ByVal y As Long) As Long
获取像素点颜色,返回RGB颜色,是GDI的颜色

SetPixel 设置像素点

(ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
设置像素点颜色,返回原来的颜色,是RGB颜色,是GDI的颜色

DrawImgRes 描绘资源图像

(hInst As HINSTANCE, ResName As CWSTR, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False)
描绘资源里的图片或ICO,必须是格式为.png,.jpg,.gif,.tiff,.ani, .ico, .cur 的图

  • hInst 模块句柄,使用 app.hInstance 即可,也可以获取其它DLL的资源,输入DLL模块句柄
  • ResName 资源名称
  • x,y,w,h 描绘的位置和大小,单位是像素,w,h 为0时,描绘原尺寸大小
  • dimPercent 调高亮度百分比 从1到99 最高99
  • bGrayScale 是否转换成灰度图像 =True =False

DrawImgFile 描绘文件图像

(FileName As CWSTR, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False)
描绘图片文件

  • FileName 文件名,带路径
  • x,y,w,h 描绘的位置和大小,单位是像素,w,h 为0时,描绘原尺寸大小
  • dimPercent 调高亮度百分比 从1到99 最高99
  • bGrayScale 是否转换成灰度图像 =True =False

DrawImgBuffer 描绘缓存区图像

(Buffer As Any Ptr, BufferSize As ULong, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False)
描绘缓存区里的图片数据,也可以称为描绘内存中的图片

  • Buffer 缓存区指针(内存地址)
  • BufferSize 长度
  • x,y,w,h 描绘的位置和大小,单位是像素,w,h 为0时,描绘原尺寸大小
  • dimPercent 调高亮度百分比 从1到99 最高99
  • bGrayScale 是否转换成灰度图像 =True =False

LoadImgFile 预加载图像文件

(FileName As CWSTR, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0)
预加载图像文件,用于后面重复使用和特殊使用(DC是 yGDI.m_bDc )

  • FileName 文件名,带路径
  • dimPercent 调高亮度百分比 从1到99 最高99
  • bGrayScale 是否转换成灰度图像 =True =False
  • clrBackground 背景色,假如图像有透明颜色,将会被背景色填充

LoadImgRes 预加载资源图像

(hInst As HINSTANCE, ResName As CWSTR, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0) As HANDLE
预加载资源图像,用于后面重复使用和特殊使用(DC是 yGDI.m_bDc )

  • hInst 模块句柄,使用 app.hInstance 即可,也可以获取其它DLL的资源,输入DLL模块句柄
  • ResName 资源名称
  • dimPercent 调高亮度百分比 从1到99 最高99
  • bGrayScale 是否转换成灰度图像 =True =False
  • clrBackground 背景色,假如图像有透明颜色,将会被背景色填充
  • 成功返回图像句柄,失败返回0

LoadImgBuffer预加载缓存区图像

(Buffer As Any Ptr, BufferSize As ULong, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0)
预加载缓存区里的图片数据,也可以称为描绘内存中的图片

  • Buffer 缓存区指针(内存地址)
  • BufferSize 长度
  • dimPercent 调高亮度百分比 从1到99 最高99
  • bGrayScale 是否转换成灰度图像 =True =False
  • clrBackground 背景色,假如图像有透明颜色,将会被背景色填充

DrawCopyImg 描绘预加载图像

(xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, rop As DWORD = SRCCOPY)
描绘预加载图像

  • xDest , yDest , wDest , hDest 目标位置和大小
  • xSrc , ySrc , wSrc, hSrc 原图像的位置和大小
  • rop 光栅操作代码,一般用:SRCCOPY
  • SRCAND AND合并
  • SRCCOPY 直接拷贝
  • SRCERASE 目标取反合并.
  • RCINVERT Xor合并
  • SRCPAINT Or合并
  • WHITENESS 调色板1索引
  • BLACKNESS 调色板0索引
  • DSTINVERT 目标取反
  • MERGECOPY And源模式组合
  • MERGEPAINT Or反向源
  • NOTSRCCOPY 源取反拷贝
  • NOTSRCERASE Or组合源,合成后取反
  • PATCOPY 模式拷贝
  • PATPAINT Or源取反与模式并
  • PATINVERT Xor源合并

DrawCopyImgAlpha 半透明描绘预加载图像

(xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, TeMeDu As Long)
半透明描绘预加载图像

  • xDest , yDest , wDest , hDest 目标位置和大小
  • xSrc , ySrc , wSrc, hSrc 原图像的位置和大小
  • TeMeDu 透明度 0--100 百分比

DrawCopyImgColor 扣色描绘预加载图像

(xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, tColor As Long)
扣色描绘预加载图像

  • xDest , yDest , wDest , hDest 目标位置和大小
  • xSrc , ySrc , wSrc, hSrc 原图像的位置和大小
  • tColor 扣除的颜色,图像中有这样的色彩就不会被描绘。

评论一下?

OωO
取消