1
私はC++、gdi +、WINDOWSを使用しています。 jpegがRGBかCMYKかどうかを確認する方法は?jpegがRGB形式かCMYK形式かを確認する方法は?
私はC++、gdi +、WINDOWSを使用しています。 jpegがRGBかCMYKかどうかを確認する方法は?jpegがRGB形式かCMYK形式かを確認する方法は?
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);