(Pחֶֽ歗⫷ؿ؋؎ٕⳢ椚 )BSVLBTBO.*$)**4IVOTVLF
QJYJW*OD HPMBOHUPLZPˋ Gopher images were created by Takuya Ueda (https://twitter.com/tenntenn). Licensed under the Creative Commons 3.0 Attributions license.
%$5欽ְ㖇簭䕎䒭 +1&(垥彊חכ葿瑞ろ⿑㺘זؿؓ٦وحزָ劢㹀纏 +'*'رؿ؋ؙزהזגְؿؓ٦وحز垥彊⻉׃ך &9*'傈劤ךرآةًٕؕٓ噟歲ָ垥彊⻉׃ך SOI APP0 (JFIF) APP2 … SOI APP1 (EXIF) APP2 … +'*'MFTUSVDUVSF &9*'MFTUSVDUVSF Tag Tag Tag … 5*''UBHT
JNBHF:$C$S type YCbCr struct { Y, Cb, Cr []uint8 YStride int CStride int SubsampleRatio YCbCrSubsampleRatio Rect Rectangle } :ծ$Cծ$Sךꂁח؝ٝه٦طٝز׀הךر٦ةָろתגְ 1MBOFS
:$C$S4VCTBNQMF3BUJPכ؟ـ؟ٝفؚٔٝ嫰㹀纏ׅ Y Y Y Y Y Y Y Y 0 … Y Y Y Cb Cb Cb Cb Cb Cb Cb 0 0 … Cb Cb Cb Cr Cr Cr Cr Cr Cr Cr 0 0 … Cr Cr Cr :4USJEF $4USJEF
歗⫷غحؿ؋הأزٓ؎س R G B A R G B A R G B A R G B A 0 0 R G B A R G B A R G B A R G B A 0 0 R G B A R G B A R G B A R G B A 0 0 R G B A R G B A R G B A R G B A 0 0 R G B A R G B A R G B A R G B A 0 0 R G B A R G B A R G B A R G B A 0 0 R G B A R G B A R G B A R G B A 0 0 R G B A R G B A R G B A R G B A 0 0 8JEUI 4USJEF 歗⫷غحؿ؋כ剑黝⻉ך4USJEF؟؎ؤד،ٓ؎ًٝٝزׁגְ Y
Z ָ妜׃ְהֹכ1JY< Z3FDU.JO: 4USJEF Y3FDU.JO9 >
JNBHFVY4DBO-JOF3FBEFS type ScanLineReader interface { io.Closer // Config returns the configurations of the image planes. Config() *Config // ReadScanLines reads scan lines into the p for each image component. it // reads up to len(p[0]) at once and returns number of bytes read and any // error. When the image is YCbCr 4:2:0, // ReadScanLines(p) returns // p[0]: read scan lines of the Y component. // p[1]: read scan lines of the Cb component. // p[2]: read scan lines of the Cr component. // // ReadScanLines returns an error in the same manner of io.Reader. ReadScanLines(ctx context.Context, p [][]byte) (n int, err error) // ReadLen returns the minimum buffer length that needs to read from this. ReadLen() (n int) }
3FBE4DBO-JOFT 㛇劤涸חכ如⯋ꂁח䭁䓸׃JP3FBEFS ؝ٝذؗأز欽ְג铣鴥ךة؎ي،ؐزծٍؗٝإָٕדֹ // ReadScanLines reads scan lines into the p for each image component… ReadScanLines(ctx context.Context, p [][]byte) (n int, err error) p[0]: Y Y Y Y Y Y Y Y … p[1]: Cb Cb Cb Cb Cb Cb Cb Cb … p[2]: Cr Cr Cr Cr Cr Cr Cr Cr … +1&(%FDPEFS p[0]: R G B A R G B A … 1/(%FDPEFS