diff options
author | John Hawthorn <jhawthor@uvic.ca> | 2008-06-24 19:22:56 -0700 |
---|---|---|
committer | John Hawthorn <jhawthor@uvic.ca> | 2008-06-24 19:22:56 -0700 |
commit | 07e510dd35cfa682d29dfdbaf02bdf5f31073f2c (patch) | |
tree | aca641be4849607b3ef2ef16ba410c883485f691 /src/png.c | |
parent | 9d75e2050e8863cd42875a56c5d16c3c4716eadf (diff) | |
download | mirror-meh-07e510dd35cfa682d29dfdbaf02bdf5f31073f2c.tar.gz mirror-meh-07e510dd35cfa682d29dfdbaf02bdf5f31073f2c.tar.bz2 mirror-meh-07e510dd35cfa682d29dfdbaf02bdf5f31073f2c.zip |
cleanup
Diffstat (limited to 'src/png.c')
-rw-r--r-- | src/png.c | 33 |
1 files changed, 17 insertions, 16 deletions
@@ -53,6 +53,23 @@ struct image *png_open(FILE *f){ png_init_io(p->png_ptr, f); png_read_info(p->png_ptr, p->info_ptr); + + p->img.width = png_get_image_width(p->png_ptr, p->info_ptr); + p->img.height = png_get_image_height(p->png_ptr, p->info_ptr); + + return (struct image *)p; +} + +int png_read(struct image *img){ + unsigned int y; + png_bytepp row_pointers; + struct png_t *p = (struct png_t *)img; + + if(setjmp(png_jmpbuf(p->png_ptr))){ + png_destroy_read_struct(&p->png_ptr, &p->info_ptr, &p->end_info); + return 1; + } + { int color_type = png_get_color_type(p->png_ptr, p->info_ptr); int bit_depth = png_get_bit_depth(p->png_ptr, p->info_ptr); @@ -74,22 +91,6 @@ struct image *png_open(FILE *f){ png_read_update_info(p->png_ptr, p->info_ptr); } - p->img.width = png_get_image_width(p->png_ptr, p->info_ptr); - p->img.height = png_get_image_height(p->png_ptr, p->info_ptr); - - return (struct image *)p; -} - -int png_read(struct image *img){ - unsigned int y; - png_bytepp row_pointers; - - struct png_t *p = (struct png_t *)img; - if(setjmp(png_jmpbuf(p->png_ptr))){ - png_destroy_read_struct(&p->png_ptr, &p->info_ptr, &p->end_info); - return 1; - } - row_pointers = (png_bytepp)malloc(img->height * sizeof(png_bytep)); for(y = 0; y < img->height; y++) row_pointers[y] = img->buf + y * img->width * 3; |