diff options
Diffstat (limited to '')
-rw-r--r-- | plug-ins/file-jpeg/jpeg-icc.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/plug-ins/file-jpeg/jpeg-icc.h b/plug-ins/file-jpeg/jpeg-icc.h new file mode 100644 index 0000000..b5306a8 --- /dev/null +++ b/plug-ins/file-jpeg/jpeg-icc.h @@ -0,0 +1,59 @@ +/* jpeg-icc.h + * + * This code was originally copied from the jpegicc tool as found in + * the lcms source code. This code comes with the following copyright + * notice: + * + * Little cms + * Copyright (C) 1998-2004 Marti Maria + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + */ + +#ifndef __JPEG_ICC_H__ +#define __JPEG_ICC_H__ + +void jpeg_icc_write_profile (j_compress_ptr cinfo, + const guchar *icc_data_ptr, + guint icc_data_len); + + +/* + * Reading a JPEG file that may contain an ICC profile requires two steps: + * + * 1. After jpeg_create_decompress() but before jpeg_read_header(), + * ask the IJG library to save in memory any APP2 markers it may find + * in the file. + * + * 2. After jpeg_read_header(), call jpeg_icc_read_profile() to find + * out whether there was a profile and obtain it if so. + * + * See if there was an ICC profile in the JPEG file being read; + * if so, reassemble and return the profile data. + * + * TRUE is returned if an ICC profile was found, FALSE if not. + * If TRUE is returned, *icc_data_ptr is set to point to the + * returned data, and *icc_data_len is set to its length. + * + * IMPORTANT: the data at **icc_data_ptr has been allocated with malloc() + * and must be freed by the caller with free() when the caller no longer + * needs it. (Alternatively, we could write this routine to use the + * IJG library's memory allocator, so that the data would be freed implicitly + * at jpeg_finish_decompress() time. But it seems likely that many apps + * will prefer to have the data stick around after decompression finishes.) + */ + +gboolean jpeg_icc_read_profile (j_decompress_ptr cinfo, + guchar **icc_data_ptr, + guint *icc_data_len); + +#endif /* __JPEG_ICC_H__ */ |