📄 ijl使用说明.txt
字号:
#include "ijl.h"
//--------------自己写的压缩函数,参数分别是:[输出参数]压缩后的缓冲区、大小,[输入]bmp宽、高,bmp缓冲区,图像位(一般写 3),压缩质量1-99。
BOOL EncodeJpegUseIJL(char *dstfile,int *len, int width, int height, char* srcdata, int imageChannels, int quality)
{
BOOL res = FALSE;
JPEG_CORE_PROPERTIES image;
IJLERR err;
ZeroMemory( &image, sizeof( JPEG_CORE_PROPERTIES ) );
IJLIOTYPE iotype;
try
{
if( ijlInit( &image ) != IJL_OK )
{
OutputDebugString( "Can't initialize Intel(R) JPEG library" );
return FALSE;
}
image.DIBWidth = width;
image.DIBHeight = height;
image.DIBBytes = (unsigned char*)srcdata;
if (!len || *len == 0)
{
image.JPGFile = dstfile;
iotype = IJL_JFILE_WRITEWHOLEIMAGE;
}
else
{
image.JPGBytes = (unsigned char*)dstfile;
image.JPGSizeBytes = *len;
iotype = IJL_JBUFF_WRITEWHOLEIMAGE;
}
image.JPGWidth = width;
image.JPGHeight = abs(height);
image.jquality = quality;
switch(imageChannels)
{
case 1:
image.DIBColor = IJL_G;
image.DIBChannels = 1;
image.DIBPadBytes = IJL_DIB_PAD_BYTES(image.DIBWidth,1);
image.JPGColor = IJL_G;
image.JPGChannels = 1;
image.JPGSubsampling = IJL_NONE;
break;
case 3:
image.DIBColor = IJL_BGR;
image.DIBChannels = 3;
image.DIBPadBytes = IJL_DIB_PAD_BYTES(image.DIBWidth,3);
image.JPGColor = IJL_YCBCR;
image.JPGChannels = 3;
image.JPGSubsampling = IJL_411;
break;
case 4:
image.DIBColor = IJL_RGBA_FPX;
image.DIBChannels = 4;
image.DIBPadBytes = IJL_DIB_PAD_BYTES(image.DIBWidth,4);
image.JPGColor = IJL_YCBCRA_FPX;
image.JPGChannels = 4;
image.JPGSubsampling = IJL_4114;
break;
default:
break;
}
if( (err = ijlWrite( &image, iotype )) != IJL_OK )
{
OutputDebugString( "Can't write image(%d)");
}
if (len)
*len = image.JPGSizeBytes;
if( ijlFree( &image ) != IJL_OK )
{
OutputDebugString( "Can't free Intel(R) JPEG library" );
}
res = TRUE;
}
catch (...)
{
OutputDebugString( "EncodeJpegUseIJL unknown error" );
}
return res;
}
调用示例
if(EncodeJpegUseIJL((char*)bEncodeData,&lSize,b.bmiHeader.biWidth,b.bmiHeader.biHeight*(-1),(char*)bData,3,80))
{
//压缩成功了
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -