📄 第9章 图象的压缩编码,jpeg压缩编码标准.mht
字号:
lang=3DEN-US>C</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=A3=AC=C8=F4</SPAN><SPAN=20
lang=3DEN-US>C>0xc0</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=A3=AC=CB=B5=C3=F7=CA=C7=D0=D0=B3=CC</SPAN><SPAN=20
lang=3DEN-US>(Run Length)</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=D0=C5=CF=A2=A3=AC=BC=B4</SPAN><SPAN=20
lang=3DEN-US>C</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=B5=C4=B5=CD</SPAN><SPAN=20
lang=3DEN-US>6</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=CE=BB=B1=ED=CA=BE=BA=F3=C3=E6=C1=AC=D0=F8=B5=C4=D7=D6=BD=DA=
=B8=F6=CA=FD</SPAN><SPAN=20
lang=3DEN-US>(</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=CB=F9=D2=D4=D7=EE=B6=E0</SPAN><SPAN=20
lang=3DEN-US>63</SPAN><SPAN=20
style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=B8=F6=C1=AC=D0=F8=D1=D5=C9=AB=CF=E0=CD=AC=B5=C4=CF=F3=CB=D8=
=A3=AC=C8=F4=BB=B9=D3=D0=D1=D5=C9=AB=CF=E0=CD=AC=B5=C4=CF=F3=CB=D8=A3=AC=BD=
=AB=D4=DA=CF=C2=D2=BB=B8=F6=D0=D0=B3=CC=B4=A6=C0=ED</SPAN><SPAN=20
lang=3DEN-US>)</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=A3=AC=CE=C4=BC=FE=B5=C4=CF=C2=D2=BB=B8=F6=D7=D6=BD=DA=BE=CD=
=CA=C7=CA=B5=BC=CA=B5=C4=CD=BC=CF=F3=CA=FD=BE=DD</SPAN><SPAN=20
lang=3DEN-US>(</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=BC=B4=B8=C3=D1=D5=C9=AB=D4=DA=B5=F7=C9=AB=B0=E5=D6=D0=B5=C4=
=CB=F7=D2=FD=D6=B5</SPAN><SPAN=20
lang=3DEN-US>)</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=A1=A3=C8=F4</SPAN><SPAN=20
lang=3DEN-US>C<0xc0</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=A3=AC=D4=F2=B1=ED=CA=BE</SPAN><SPAN=20
lang=3DEN-US>C</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=CA=C7=CA=B5=BC=CA=B5=C4=CD=BC=CF=F3=CA=FD=BE=DD=A1=A3=C8=E7=
=B4=CB=B7=B4=B8=B4=A3=AC=D6=B1=B5=BD=D5=E2</SPAN><SPAN=20
lang=3DEN-US>bytes_per_line</SPAN><SPAN=20
style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=B8=F6=D7=D6=BD=DA=B4=A6=C0=ED=CD=EA=A3=AC=D5=E2=D2=BB=D0=D0=
=B5=C4=BD=E2=C2=EB=CD=EA=B3=C9=A1=A3</SPAN><SPAN =
lang=3DEN-US>PCX</SPAN><SPAN=20
style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=BE=CD=CA=C7=D3=D0=C8=F4=B8=C9=B8=F6=D5=E2=D1=F9=B5=C4=BD=E2=
=C2=EB=D0=D0=D7=E9=B3=C9=A1=A3</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=CF=C2=C3=E6=CA=C7=CA=B5=CF=D6</SPAN><SPAN=20
lang=3DEN-US>256</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=C9=AB</SPAN><SPAN=20
lang=3DEN-US>PCX</SPAN><SPAN=20
style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=CE=C4=BC=FE=BD=E2=C2=EB=B5=C4=D4=B4=B3=CC=D0=F2=A3=AC=C6=E4=
=D6=D0=B5=DA=B6=FE=B8=F6=BA=AF=CA=FD=B6=D4=D2=BB=D0=D0=BD=F8=D0=D0=BD=E2=C2=
=EB=A3=AC=D3=A6=B8=C3=B0=D1=D4=C4=B6=C1=B5=C4=D6=D8=B5=E3=B7=C5=D4=DA=D5=E2=
=B8=F6=BA=AF=CA=FD=C9=CF=A1=A3=D2=AA=D7=A2=D2=E2=B5=C4=CA=C7=A3=AC=D6=B4=D0=
=D0=CA=B1=CE=C4=BC=FE</SPAN><SPAN=20
lang=3DEN-US>C:\\test.pcx</SPAN><SPAN=20
style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=B1=D8=D0=EB=B4=E6=D4=DA=A3=AC=B6=F8=C7=D2=CA=C7=D2=BB=B8=F6=
</SPAN><SPAN lang=3DEN-US>256</SPAN><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5">=C9=AB</SPAN><SPAN =
lang=3DEN-US>PCX</SPAN><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5">=CE=C4=BC=FE=A1=A3</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt">unsigned int =
PcxBytesPerLine;</P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN lang=3DEN-US>BOOL LoadPcxFile (HWND =
hWnd,char=20
*PcxFileName)</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN lang=3DEN-US>{</SPAN></P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>FILE =20
&=
nbsp; =20
=
=20
*PCXfp;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>PCXHEAD =20
&=
nbsp; =20
header;</P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN> </SPAN> =20
LOGPALETTE =20
*pPal;</P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN> </SPAN> =20
HPALETTE =20
=20
hPrevPalette; =
</P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN> </SPAN> =20
HDC &nbs=
p; =20
=
=20
hDc;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>HLOCAL =
=20
=
hPal;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>DWORD=20
=
=20
ImgSize;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>DWORD =20
=
OffBits,BufSize;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>LPBITMAPINFOHEADER =
lpImgData; =20
</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>DWORD =20
&=
nbsp; =20
i;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>LONG &n=
bsp;=20
=20
x,y;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>int &nb=
sp; =20
PcxTag;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>unsigned char =20
=20
LineBuffer[6400];</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>LPSTR &=
nbsp; =20
=
=20
lpPtr;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>HFILE &=
nbsp; =20
hfbmp;</P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN=20
lang=3DEN-US>if((PCXfp=3Dfopen(PcxFileName,"rb"))=3D=3DNULL){ =
//</SPAN><SPAN=20
style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=CE=C4=BC=FE=C3=BB=D3=D0=D5=D2=B5=BD</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN lang=3DEN-US>MessageBox(hWnd,"File =
c:\\test.pcx=20
not found!","Error Message",</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN=20
lang=3DEN-US>MB_OK|MB_ICONEXCLAMATION);</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN lang=3DEN-US>return =
FALSE;</SPAN></P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>}</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>//<SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=B6=C1=B3=F6=CD=B7=D0=C5=CF=A2</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN> </SPAN> =20
fread((char*)&header,1,sizeof(PCXHEAD),PCXfp);</P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN> </SPAN> =20
if(header.manufacturer!=3D0x0a){ //<SPAN=20
style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=B2=BB=CA=C7=D2=BB=B8=F6=BA=CF=B7=A8=B5=C4</SPAN><SPAN =
lang=3DEN-US>PCX</SPAN><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5">=CE=C4=BC=FE</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN lang=3DEN-US>MessageBox(hWnd,"Not a =
valid Pcx=20
file!","Error Message",</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN=20
lang=3DEN-US>MB_OK|MB_ICONEXCLAMATION);</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN =
lang=3DEN-US>fclose(PCXfp);</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN> =20
</SPAN> return FALSE;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>}</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>//<SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=BD=AB=CE=C4=BC=FE=D6=B8=D5=EB=D6=B8=CF=F2=B5=F7=C9=AB=B0=E5=
=BF=AA=CA=BC=B4=A6</SPAN></P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>fseek(PCXfp,-769L,SEEK_END);</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>//<SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=BB=F1=C8=A1=D1=D5=C9=AB=CA=FD=D0=C5=CF=A2</SPAN></P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>PcxTag=3Dfgetc(PCXfp)&0xff;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>if(PcxTag!=3D12){ //<SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=B7=C7</SPAN><SPAN=20
lang=3DEN-US>256</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=C9=AB=A3=AC=B7=B5=BB=D8</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN> =20
</SPAN> MessageBox(hWnd,"Not a 256 =
colors=20
Pcx file!","Error Message",</P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN=20
lang=3DEN-US>MB_OK|MB_ICONEXCLAMATION);</SPAN></P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN =
lang=3DEN-US>fclose(PCXfp);</SPAN></P>
<P=20
style=3D"LINE-HEIGHT: =
18pt"><SPAN> &=
nbsp; =20
</SPAN>return FALSE;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>}</P>
<P style=3D"LINE-HEIGHT: 18pt"><SPAN lang=3DEN-US>//</SPAN><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5">=B4=B4=BD=A8=D0=C2=B5=C4</SPAN><SPAN =
lang=3DEN-US>BITMAPFILEHEADER</SPAN><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5">=BA=CD</SPAN><SPAN =
lang=3DEN-US>BITMAPINFOHEADER</SPAN></P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>memset((char=20
*)&bf,0,sizeof(BITMAPFILEHEADER)); </P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>memset((char *)&bi,0,sizeof(BITMAPINFOHEADER));</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>//<SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=CC=EE=D0=B4</SPAN><SPAN=20
lang=3DEN-US>BITMAPINFOHEADER</SPAN><SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=CD=B7=D0=C5=CF=A2</SPAN></P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>bi.biSize=3Dsizeof(BITMAPINFOHEADER);</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>//<SPAN style=3D"FONT-FAMILY: =
=CB=CE=CC=E5">=B5=C3=B5=BD=CD=BC=CF=F3=B5=C4=BF=ED=BA=CD=B8=DF</SPAN></P>=
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>bi.biWidth=3Dheader.xmax-header.xmin+1;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>bi.biHeight=3Dheader.ymax-header.ymin+1;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>bi.biPlanes=3D1;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>bi.biBitCount=3D8;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>bi.biCompression=3DBI_RGB;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>ImgWidth=3Dbi.biWidth;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>ImgHeight=3Dbi.biHeight;</P>
<P style=3D"LINE-HEIGHT: =
18pt"><SPAN> =20
</SPAN>NumColors=3D256;</P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -