diff options
Diffstat (limited to 'src/jpeg-utils.h')
| -rw-r--r-- | src/jpeg-utils.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/src/jpeg-utils.h b/src/jpeg-utils.h new file mode 100644 index 0000000..9b8919f --- /dev/null +++ b/src/jpeg-utils.h @@ -0,0 +1,94 @@ +/* Cataract - Static web photo gallery generator + * Copyright (C) 2008 Tomas Bzatek <tbzatek@users.sourceforge.net> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifdef __cplusplus + extern "C" { +#endif + +#include <glib.h> + + +/* TODO: we want to have numerical values here at some point in the future */ +typedef struct { + char *datetime; + char *camera_model; + char *iso; + char *focal_length; + char *focal_length_35mm; + char *aperture; + char *exposure; + char *flash; + + char *exif_software; + char *exif_imgdesc; + char *exif_artist; + char *exif_copyright; + char *exif_usercomment; + + char *iptc_objectname; + char *iptc_copyright; + char *iptc_credit; + char *iptc_caption; + char *iptc_author; + + char *jpeg_comment; +} TExifData; + + +/* + * get_exif: retrieve EXIF info from a JPEG image + */ +int get_exif (const char *filename, TExifData **exif_data); + +/* + * free_exif_struct: free allocated structure + */ +void free_exif_data (TExifData *data); + + +/* + * resize_image: resize image pointed by src and save result to dst + * - setting thumbnail flag will remove all profiles and optimize for size + */ +gboolean resize_image (const char *src, const char *dst, + int size_x, int size_y, + int quality, + gboolean thumbnail); + +/* + * get_image_sizes: retrieve image dimensions + */ +void get_image_sizes (const char *img, + unsigned long *width, unsigned long *height); + +/* + * calculate_sizes: calculate maximal image sizes within specified limits keeping aspect ratio + */ +void calculate_sizes (const unsigned long max_width, const unsigned long max_height, + unsigned long *width, unsigned long *height); + +/* + * modify_exif: - strip thumbnail stored in EXIF table + * - add copyright to Exif::Image::Copyright and Iptc::Application2::Copyright + */ +void modify_exif (const char *filename, gboolean strip_thumbnail, const char *add_copyright); + + +#ifdef __cplusplus + } +#endif |
