如何用GDI+转换位图成JPG数据到内存中

2025-03-13 18:54:42
推荐回答(1个)
回答1:

//datecompress  图片的质量(只有在转换成jpg有效)   
  
//nSize         图片缓冲区的大小(要转的图片数据大小)  
  
//PicDate       这是一个指针,指向你的图片的  
  
unsigned int size=0;//得到图像大小  
BYTE* buffers;//存储图像数据的缓冲  
  
  
Bitmap *image = CreateBitmapFromMemory(PicDate,nSize);   //把你的图像数据加载入内存  
  
  
SaveBitmapToMemory(image,(void **)&buffers,&size,CodecIndex,datecompress); //转换成你要的类型,从buffers获取  
  
//说明:CodecIndex取值0-4,分别对应转换为jpg、bmp、gif、png、tiff格式,当为0ompr时,参数datecess有用,表示转换jpg的质量,取值0-100,数值越小,压缩比越大。
//这里是你的代码   

.....  

//这里是你的代码  
delete image;  
delete buffers;

把这些代码放入声明

Bitmap* CreateBitmapFromMemory(const void *buf, size_t size);   
void* SaveBitmapToMemory(Bitmap *image, void **outbuf, size_t *size, size_t CodecIndex, ULONG quality);

把这些代码加入到你的源文件最后