From: Laurent Mertens Date: Thu, 20 May 2021 14:56:40 +0000 (+0200) Subject: Update for recent libpng X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=svrt.git;a=commitdiff_plain;h=78330d7885b6d34d9dbf4785a5af21ea339e7a08 Update for recent libpng --- diff --git a/Makefile b/Makefile index 13a74cc..45cfebd 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ # You should have received a copy of the GNU General Public License # along with svrt. If not, see . -LDFLAGS=-lm -ljpeg -lpng12 +LDFLAGS=-lm -ljpeg -lpng ifeq ($(DEBUG),yes) OPTIMIZE_FLAG = -ggdb3 -DDEBUG -fno-omit-frame-pointer diff --git a/rgb_image.cc b/rgb_image.cc index edb28eb..f9b01c4 100644 --- a/rgb_image.cc +++ b/rgb_image.cc @@ -25,7 +25,7 @@ #include #include -#include +#include #include "jpeg_misc.h" #include "rgb_image.h" @@ -145,13 +145,13 @@ void RGBImage::read_png(const char *name) { png_set_sig_bytes(png_ptr, header_size); png_read_info(png_ptr, info_ptr); - _width = info_ptr->width; - _height = info_ptr->height; + _width = png_get_image_width(png_ptr, info_ptr); + _height = png_get_image_height(png_ptr, info_ptr); png_byte bit_depth, color_type, channels; - color_type = info_ptr->color_type; - bit_depth = info_ptr->bit_depth; - channels = info_ptr->channels; + color_type = png_get_color_type(png_ptr, info_ptr); + bit_depth = png_get_bit_depth(png_ptr, info_ptr); + channels = png_get_channels(png_ptr, info_ptr); if(bit_depth != 8) { cerr << "Can only read 8-bits PNG images." << endl; @@ -161,7 +161,7 @@ void RGBImage::read_png(const char *name) { // allocate image pointer row_pointers = (png_bytep*) malloc(sizeof(png_bytep) * _height); for (int y = 0; y < _height; y++) - row_pointers[y] = (png_byte*) malloc(info_ptr->rowbytes); + row_pointers[y] = (png_byte*) malloc(png_get_rowbytes(png_ptr, info_ptr)); allocate(); @@ -266,7 +266,7 @@ void RGBImage::write_png(const char *name) { // allocate memory row_pointers = (png_bytep*) malloc(sizeof(png_bytep) * _height); for (int y = 0; y < _height; y++) - row_pointers[y] = (png_byte*) malloc(info_ptr->rowbytes); + row_pointers[y] = (png_byte*) malloc(png_get_rowbytes(png_ptr, info_ptr)); int k; for (int y = 0; y < _height; y++) {