2010-12-20 79 views

答えて

3

IJG libjpegライブラリを使用する場合は、JPEGファイルを開いてヘッダーを読み取り、グレースケール(モノクロ)、RGB、またはCMYKかどうかを確認できます。 (実際には、いくつかの無料のJPEGライブラリがありますが、IJGのlibjpegは、おそらく最も一般的に使用されている。)あなたがでソースをのlibjpeg見つけることができますものになるだろうヘッダの読み方の

http://www.ijg.org/files/jpegsrc.v8c.tar.gz

おおよその例like:

struct jpeg_decompress_struct dinfo; 
FILE* file = fopen(fname, "r"); 

/* Step 1: allocate and initialize JPEG decompression object */ 
jpeg_create_decompress(&dinfo); 

/* Step 2: specify data source (eg, a file) */ 
jpeg_stdio_src(&dinfo, file); 

/* Step 3: read file parameters with jpeg_read_header() */ 
(void) jpeg_read_header(dinfo, TRUE); 

/* Step 4: set parameters for decompression 
* In this example, we don't need to change any of the 
* defaults set by jpeg_read_header(), so we do nothing here. 
*/ 
if (dinfo->jpeg_color_space == JCS_CMYK || dinfo->jpeg_color_space == JCS_YCCK) { 
    // CMYK 
} else if (dinfo->jpeg_color_space == JCS_RGB || dinfo->jpeg_color_space == JCS_YCbCr) { 
    // RGB 
} else if (dinfo->jpeg_color_space == JCS_GRAYSCALE) { 
    // Grayscale 
} else { 
    ERREXIT(dinfo, JERR_CONVERSION_NOTIMPL); 
    // error condition here... 
} 

/* You can skip the other steps involved in decompressing an image */ 

/* Step 8: Release JPEG decompression object */ 
jpeg_destroy_decompress(dinfo); 
関連する問題