[gthumb: 83/129] add support for png dimensions
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb: 83/129] add support for png dimensions
- Date: Wed, 27 Apr 2011 20:57:21 +0000 (UTC)
commit f1bcba8883688841cd29937eb0371650f82c3d23
Author: Paolo Bacchilega <paobac src gnome org>
Date: Mon Apr 25 17:32:39 2011 +0200
add support for png dimensions
.../image_viewer/gth-metadata-provider-image.c | 39 ++++++++++++++++++--
1 files changed, 35 insertions(+), 4 deletions(-)
---
diff --git a/extensions/image_viewer/gth-metadata-provider-image.c b/extensions/image_viewer/gth-metadata-provider-image.c
index 58901ab..3d43635 100644
--- a/extensions/image_viewer/gth-metadata-provider-image.c
+++ b/extensions/image_viewer/gth-metadata-provider-image.c
@@ -84,12 +84,43 @@ gth_metadata_provider_image_read (GthMetadataProvider *self,
NULL,
NULL);
if (size >= 0) {
+ if ((size >= 24)
+
+ /* PNG signature */
+
+ && (buffer[0] == 0x89)
+ && (buffer[1] == 0x50)
+ && (buffer[2] == 0x4E)
+ && (buffer[3] == 0x47)
+ && (buffer[4] == 0x0D)
+ && (buffer[5] == 0x0A)
+ && (buffer[6] == 0x1A)
+ && (buffer[7] == 0x0A)
+
+ /* IHDR Image header */
+
+ && (buffer[12] == 0x49)
+ && (buffer[13] == 0x48)
+ && (buffer[14] == 0x44)
+ && (buffer[15] == 0x52))
+ {
+ /* PNG */
+
+ width = (buffer[16] << 24) + (buffer[17] << 16) + (buffer[18] << 8) + buffer[19];
+ height = (buffer[20] << 24) + (buffer[21] << 16) + (buffer[22] << 8) + buffer[23];
+
+ format_recognized = TRUE;
+ description = "PNG";
+ }
+
#if HAVE_LIBJPEG
- if ((size >= 4)
- && (buffer[0] == 0xff)
- && (buffer[1] == 0xd8)
- && (buffer[2] == 0xff))
+ else if ((size >= 4)
+ && (buffer[0] == 0xff)
+ && (buffer[1] == 0xd8)
+ && (buffer[2] == 0xff))
{
+ /* JPEG */
+
GthTransform orientation;
if (g_seekable_can_seek (G_SEEKABLE (stream))) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]