强大的果核绘图工具

易语言 2020-08-18 17:39:06

强大的果核绘图工具

Clsid = 取空白字节集 (16)
CLSIDFromString (A2W (pStr), Clsid) ' 获取图像格式对应的Clsid
nLength = 字节集_取字节集长度 (图像数据)
hMem = GlobalAlloc (#GMEM_FIXED, nLength) ' 申请内存
CreateStreamOnHGlobal (hMem, 真, Stream) ' 创建流对象
lpvoid = GlobalLock (hMem) ' 锁定该区域,获得存放数据的地址
CopyMemory_s (lpvoid, 图像数据, nLength)
GlobalUnlock (hMem) ' 取消锁定
pStream = GetObjectPtr (Stream, Stream, 0) ' 获得流对象指针
GdipCreateBitmapFromStream (数值_字节集到整数 (指针到字节集 (pStream, 4), 1), bitmap) ' 创建位图对象
CreateStreamOnHGlobal (0, 真, DataStream)
pStream = GetObjectPtr (DataStream, DataStream, 0)
pStream = 数值_字节集到整数 (指针到字节集 (pStream, 4), 1)
GdipSaveImageToStream_int (bitmap, pStream, Clsid, 0) ' 这里是图像格式转换的关键。把位图按指定格式保存到数据流里面
GetHGlobalFromStream_int (pStream, hMemDataStream) ' 获得数据流句柄
pDataStream = GlobalLock (hMemDataStream) ' 获得数据指针
nStreamSize = GlobalSize (hMemDataStream) ' 获取数据大小
.如果真 (pDataStream ≠ 0)
新图像 = 取空白字节集 (nStreamSize)
CopyMemory_z (新图像, pDataStream, nStreamSize) ' 复制到字节集里
bRet = 真
.如果真结束
' 别忘记下面释放资源的函数,否则造成内存泄漏
GlobalUnlock (hMemDataStream)
GdipDisposeImage (bitmap)
GlobalFree (hMem)