使用IJL15.dll
直接将DIB转jpg,可是转换后图象是上下颠倒的???
源码如下:
FILE * input_file;
char *input_filename="C:\\Documents and Settings\\Administrator\\桌面\\test.bmp";
char *output_filename="C:\\Documents and Settings\\Administrator\\桌面\\output.jpg";
input_file=fopen(input_filename,"rb"); JPEG_CORE_PROPERTIES jcprops;
ijlInit(&jcprops); BITMAPFILEHEADER bmfh;
BITMAPINFOHEADER bmih; fread(&bmfh,1,sizeof(BITMAPFILEHEADER),input_file);
fread(&bmih,1,sizeof(BITMAPINFOHEADER),input_file); long DIBLineSize=(bmih.biWidth*3)/4*4; jcprops.DIBChannels=3;
jcprops.DIBColor=IJL_BGR;
jcprops.DIBHeight=bmih.biHeight;
jcprops.DIBWidth=bmih.biWidth;
jcprops.DIBPadBytes=IJL_DIB_PAD_BYTES(jcprops.DIBWidth,jcprops.DIBChannels); jcprops.JPGHeight=bmih.biHeight;
jcprops.JPGWidth=bmih.biWidth; jcprops.JPGFile=output_filename; unsigned char *DIBBuffer=new unsigned char [DIBLineSize*bmih.biHeight];
fread(DIBBuffer,1,DIBLineSize*bmih.biHeight,input_file); jcprops.DIBBytes=DIBBuffer; ijlWrite(&jcprops,IJL_JFILE_WRITEWHOLEIMAGE); ijlFree(&jcprops); delete[] DIBBuffer;
fclose(input_file);