2010年12月5日 星期日

JSAMPARRAY & jpeg_read_scanlines

JSAMPROW data[1];
data[0] = new JSAMPLE[1920*1080];



while (cinfo.output_scanline < cinfo.output_height) {
num_scanlines = jpeg_read_scanlines(&cinfo, data, maxlines );
        }
      
        jpeg_read_scanlines 的第二個參數 JSAMPARRAY 是一個儲存 pointer to row 的陣列。
如果有一行 就得有一個元素,兩行就要有兩個元素。
也就是 & JSAMPROW 或 & data[n]


libjpeg.txt 的範例


        JSAMPROW row_pointer[1]; /* pointer to a single row */
int row_stride; /* physical row width in buffer */

row_stride = image_width * 3; /* JSAMPLEs per row in image_buffer */

while (cinfo.next_scanline < cinfo.image_height) {
   row_pointer[0] = & image_buffer[cinfo.next_scanline * row_stride];
   jpeg_write_scanlines(&cinfo, row_pointer, 1);
}


ycc_rgb_convert() in jdcolor.c

沒有留言: