图像句柄与图片互取易语言源码

从一个多功能模块提取的,并优化确认无错的图形句柄与图像数据互换源码

.版本 2 .程序集 图像操作 .子程序 get_Handle, 整数型 .参数 IPicture, 整数型 .参数 pHandle, 整数型, 参考 置入代码 ({ 139, 69, 8, 139, 0, 131, 192, 12, 139, 0, 255, 117, 12, 255, 117, 8, 255, 208 }) 返回 (pHandle) .子程序 Release, , , 释放对象 .参数 IPicture, 整数型 置入代码 ({ 139, 69, 8, 139, 0, 131, 192, 8, 139, 0, 255, 117, 8, 255, 117, 8, 255, 208 }) .子程序 图像_图片句柄取图片, 字节集, 公开, 返回的图片格式,固定为位图。 .参数 hBitmap, 整数型 .局部变量 Bitmap, 位图结构, , , 244 .局部变量 Resource, 字节集, , , 240 .局部变量 位图头, 位图头, , , 232 .局部变量 buf, 字节集 .局部变量 hMemDC, 整数型, , , 252 .局部变量 位图信息, 位图信息, , , 248 .局部变量 结构信息, 字节集, , , 236 GetObject (hBitmap, 24, Bitmap) hMemDC = CreateCompatibleDC (0) 位图信息.结构大小 = 40 GetDIBits_BimapInfo (hMemDC, hBitmap, 0, 0, 0, 位图信息, 0) Resource = 取空白字节集 (位图信息.图像数据大小) 位图信息.压缩方式 = 0 位图信息.位深度 = 24 GetDIBits (hMemDC, hBitmap, 0, Bitmap.位图高度, Resource, 位图信息, 0) 结构信息 = 取空白字节集 (位图信息.结构大小) CopyMemory_位图信息 (结构信息, 位图信息, 位图信息.结构大小) 位图头.位图类别 = 19778 ' 取字节集数据 (到字节集 (“BM”), 2, ) 位图头.数据地址 = 54 位图头.图像大小 = 54 + 位图信息.图像数据大小 连续赋值 (0, 位图头.bfReserved1, 位图头.bfReserved2) DeleteDC (hMemDC) buf = 取空白字节集 (位图头.图像大小) CopyMemory_位图头 (buf, 位图头, 14) CopyMemory_zj_zjj (buf [15], 结构信息 + Resource, 位图头.图像大小 - 14) 返回 (buf) .子程序 图像_取图片句柄, 整数型, 公开, 支持bmp、gif、jpg、cur、ico等。感谢叮咚茶提供的极强悍源码,没有这个函数整个模块没法做了。。。 .参数 图形数据, 字节集 .参数 输出宽度, 整数型, 可空 .参数 输出高度, 整数型, 可空 .局部变量 BinLen, 整数型 .局部变量 hMem, 整数型 .局部变量 lpMem, 整数型 .局部变量 IID_IPicture, 字节集 .局部变量 Stream, 整数型 .局部变量 Subaddr, 整数型 .局部变量 Handle, 整数型 .局部变量 picobj, 整数型 .局部变量 ret, 整数型 置入代码 ({ 139, 69, 8, 139, 0, 139, 64, 4, 137, 69, 248 }) ' BinLen = 取字节集长度 (图形数据) hMem = GlobalAlloc (66, BinLen) .如果真 (hMem ≠ 0) lpMem = GlobalLock (hMem) .如果真 (lpMem ≠ 0) 置入代码 ({ 139, 125, 244, 139, 117, 8, 139, 54, 131, 198, 8, 139, 77, 248, 243, 164 }) ' CopyMemory_整数_字节集 (lpMem, 图形数据, BinLen) GlobalUnlock (hMem) .如果真 (CreateStreamOnHGlobal (hMem, 0, Stream) = 0) IID_IPicture = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } .如果真 (CLSIDFromString ({ 123, 0, 55, 0, 66, 0, 70, 0, 56, 0, 48, 0, 57, 0, 56, 0, 48, 0, 45, 0, 66, 0, 70, 0, 51, 0, 50, 0, 45, 0, 49, 0, 48, 0, 49, 0, 65, 0, 45, 0, 56, 0, 66, 0, 66, 0, 66, 0, 45, 0, 48, 0, 48, 0, 65, 0, 65, 0, 48, 0, 48, 0, 51, 0, 48, 0, 48, 0, 67, 0, 65, 0, 66, 0, 125, 0, 0, 0 }, IID_IPicture) = 0) .如果真 (OleLoadPicture (Stream, BinLen, 1, IID_IPicture, picobj) = 0) get_Handle (picobj, Handle) ret = CopyImage (Handle, 0, 0, 0, 4) DeleteObject (Handle) Release (picobj) .如果真结束 .如果真结束 .如果真结束 .如果真结束 GlobalFree (hMem) .如果真结束 返回 (ret) .子程序 图像_置图片尺寸, 字节集, 公开, 返回新的图片数据。 .参数 原图片, 字节集 .参数 像素X, 整数型, 可空, 留空默认保持原大小,下同。 .参数 像素Y, 整数型, 可空 .局部变量 hBitmap, 整数型 .局部变量 Bitmap, 位图结构 .局部变量 数据, 字节集 .局部变量 ret, 整数型 .如果真 (原图片 = { }) 返回 ({ }) .如果真结束 hBitmap = 图像_取图片句柄 (原图片) GetObject (hBitmap, 24, Bitmap) .如果真 (像素X = 0) 像素X = Bitmap.位图宽度 .如果真结束 .如果真 (像素Y = 0) 像素Y = Bitmap.位图高度 .如果真结束 .如果真 (像素Y ≤ 0 或 像素X ≤ 0) 返回 (原图片) .如果真结束 ret = CopyImage (hBitmap, 0, 像素X, 像素Y, 4) 数据 = 图像_图片句柄取图片 (ret) DeleteObject (ret) DeleteObject (hBitmap) 返回 (数据) .子程序 图像_取图片宽度, 整数型, 公开, 支持bmp、gif、jpg、cur、ico等,不支持某些格式的图片(如png),请先转换为bmp。 .参数 图片, 字节集 .局部变量 hBitmap, 整数型 .局部变量 Bitmap, 位图结构 .如果真 (图片 = { }) 返回 (0) .如果真结束 hBitmap = 图像_取图片句柄 (图片) GetObject (hBitmap, 24, Bitmap) DeleteObject (hBitmap) 返回 (Bitmap.位图宽度) .子程序 图像_取图片高度, 整数型, 公开, 支持bmp、gif、jpg、cur、ico等,不支持某些格式的图片(如png),请先转换为bmp。 .参数 图片, 字节集 .局部变量 hBitmap, 整数型 .局部变量 Bitmap, 位图结构 .如果真 (图片 = { }) 返回 (0) .如果真结束 hBitmap = 图像_取图片句柄 (图片) GetObject (hBitmap, 24, Bitmap) DeleteObject (hBitmap) 返回 (Bitmap.位图高度)
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

图像句柄与图片互取易语言源码》有0个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注