Author: akv
Date: 2013-05-04 11:49:35 +0200 (Sat, 04 May 2013)
New Revision: 4379
Modified:
branches/4175-enfuse/plugins/load-png/load-png.c
Log:
A bit of cleanup.
Modified: branches/4175-enfuse/plugins/load-png/load-png.c
===================================================================
--- branches/4175-enfuse/plugins/load-png/load-png.c 2013-05-04 08:51:05 UTC
(rev 4378)
+++ branches/4175-enfuse/plugins/load-png/load-png.c 2013-05-04 09:49:35 UTC
(rev 4379)
@@ -31,19 +31,6 @@
#error "LCMS v1 or LCMS v2 required"
#endif
-
-void abort_(const char * s, ...)
-{
- va_list args;
- va_start(args, s);
- vfprintf(stderr, s, args);
- fprintf(stderr, "\n");
- va_end(args);
- _exit(0);
-}
-
-
-
/**
* Open an image using libpng
* @param filename The filename to open
@@ -68,24 +55,26 @@
/* open file and test for it being a png */
FILE *fp = fopen(filename, "rb");
if (!fp)
- abort_("[read_png_file] File %s could not be opened for reading",
filename);
- if (fread(header, 1, 8, fp));
- if (png_sig_cmp(header, 0, 8))
- abort_("[read_png_file] File %s is not recognized as a PNG file",
filename);
+ return NULL;
+ if (!fread(header, 1, 8, fp))
+ return NULL;
+ if (png_sig_cmp(header, 0, 8))
+ return NULL;
+
/* initialize stuff */
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
if (!png_ptr)
- abort_("[read_png_file] png_create_read_struct failed");
+ return NULL;
info_ptr = png_create_info_struct(png_ptr);
if (!info_ptr)
- abort_("[read_png_file] png_create_info_struct failed");
+ return NULL;
if (setjmp(png_jmpbuf(png_ptr)))
- abort_("[read_png_file] Error during init_io");
+ return NULL;
png_init_io(png_ptr, fp);
png_set_sig_bytes(png_ptr, 8);
@@ -97,12 +86,14 @@
color_type = png_get_color_type(png_ptr, info_ptr);
bit_depth = png_get_bit_depth(png_ptr, info_ptr);
+#ifdef DEBUG
printf("width: %u\n", (guint32) width);
printf("height: %u\n", (guint32) height);
printf("bit_depth: %d\n", bit_depth);
printf("color_type: %d\n", color_type);
+#endif
- /* currently we only support 16BIT RGB */
+ /* currently we only support 16BIT RGBA */
if (color_type != PNG_COLOR_TYPE_RGB_ALPHA || bit_depth != 16)
return NULL;
@@ -110,7 +101,7 @@
/* read file */
if (setjmp(png_jmpbuf(png_ptr)))
- abort_("[read_png_file] Error during read_image");
+ return NULL;
row_pointers = (png_bytep*) malloc(sizeof(png_bytep) * height);
@@ -127,10 +118,6 @@
png_read_image(png_ptr, row_pointers);
- // png_set_expand(png_ptr);
- // png_set_strip_16(png_ptr);
-
-
RS_IMAGE16 *image = rs_image16_new(width, height, 3, 4);
for (y=0; y<height; y++) {
@@ -140,9 +127,6 @@
image->pixels[dest++] = CLAMP((ptr[0]<<8)|ptr[1], 0, 65535);
image->pixels[dest++] = CLAMP((ptr[2]<<8)|ptr[3], 0, 65535);
image->pixels[dest++] = CLAMP((ptr[4]<<8)|ptr[5], 0, 65335);
- //image->pixels[dest++] = ptr[0]*256;
- //image->pixels[dest++] = ptr[1]*256;
- //image->pixels[dest++] = ptr[2]*256;
dest++;
}
}
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit