📄 ejpeg.c
字号:
#include <stdlib.h>
#include <stdio.h>
#include "ejpeg.h"
void main(int argc,char* argv[])
{
FILE *infile;
BYTE Head[54];
BYTE *Buff;
DWORD ImgWidth,ImgHeight,i,j,p;
BYTE bt0,bt1,bt2;
BYTE stuff[4];
if(argc<3)
{ printf("Usage: %s inputfile outputfile\n",argv[0]); return;}
infile=fopen(argv[1],"rb");
if(infile==NULL)
{ printf("Open 24 bit bitmap file failed!"); return;}
fread(Head,54,1,infile);
ImgWidth =*(Head+18)+(*(Head+19))*256;
ImgHeight=*(Head+22)+(*(Head+23))*256;
p=(ImgWidth*3)%4;
printf("Image width: %d height: %d \n",ImgWidth,ImgHeight);
Buff = (BYTE *)malloc(ImgWidth*ImgHeight*3);
if(!Buff) { printf("Malloc memory failed!\n"); return;}
for(i=0;i<ImgHeight;i++) // read bitmap pixels array to buffer
{
for(j=0;j<ImgWidth;j++)
{
fread((BYTE *)&bt0,1,1,infile);
fread((BYTE *)&bt1,1,1,infile);
fread((BYTE *)&bt2,1,1,infile);
*(Buff+i*ImgWidth*3+j*3+0)= bt0;
*(Buff+i*ImgWidth*3+j*3+1)= bt1;
*(Buff+i*ImgWidth*3+j*3+2)= bt2;
}
if(p!=0) fread(stuff,1,(4-p),infile);
}
fclose(infile);
RGBtoJPEGFile(Buff,ImgWidth,ImgHeight,argv[2]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -