diff -wbBur qpxtool-0.7.1_002/console/f1tattoo/f1tattoo.cpp qpxtool-0.7.1_002.my/console/f1tattoo/f1tattoo.cpp --- qpxtool-0.7.1_002/console/f1tattoo/f1tattoo.cpp 2009-11-25 10:55:44.000000000 +0300 +++ qpxtool-0.7.1_002.my/console/f1tattoo/f1tattoo.cpp 2012-01-23 13:53:37.000000000 +0400 @@ -129,28 +129,28 @@ png_read_info(png_ptr, info_ptr); - printf("Image size: %ld x %ld\n", info_ptr->width, info_ptr->height); + printf("Image size: %u x %u\n", png_get_image_width(png_ptr, info_ptr), png_get_image_height(png_ptr, info_ptr)); - if (info_ptr->width != 3744U || info_ptr->height != rows ) { + if (png_get_image_width(png_ptr, info_ptr) != 3744U || png_get_image_height(png_ptr, info_ptr) != rows ) { printf("Image should be 3744 x %d", rows); return 1; } -// width = info_ptr->width; -// height = info_ptr->height; -// bit_depth = info_ptr->bit_depth; +// width = png_get_image_width(png_ptr, info_ptr); +// height = png_get_image_height(png_ptr, info_ptr); +// bit_depth = png_get_bit_depth(png_ptr, info_ptr); number_of_passes = png_set_interlace_handling(png_ptr); png_read_update_info(png_ptr, info_ptr); - printf("Color type: [%d] ", info_ptr->color_type); - switch (info_ptr->color_type) { + printf("Color type: [%d] ", png_get_color_type(png_ptr, info_ptr)); + switch (png_get_color_type(png_ptr, info_ptr)) { case PNG_COLOR_TYPE_GRAY: printf("PNG_COLOR_TYPE_GRAY\n"); break; case PNG_COLOR_TYPE_PALETTE: printf("PNG_COLOR_TYPE_PALETTE\n"); - if (!(info_ptr->valid & PNG_INFO_PLTE)) { + if (!(png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE))) { printf("PNG color type is indexed, but no palette found!"); goto err_read_png; } @@ -168,49 +168,53 @@ printf("unlnown PNG color type!\n"); goto err_read_png; } - printf("Bit depth : %d\n", info_ptr->bit_depth); - if (info_ptr->bit_depth != 8) { + printf("Bit depth : %d\n", png_get_bit_depth(png_ptr, info_ptr)); + if (png_get_bit_depth(png_ptr, info_ptr) != 8) { printf("Unsupported bit depth!\n"); goto err_read_png; } - if (info_ptr->valid & PNG_INFO_PLTE) { - printf("Palette : %d colors\n", info_ptr->num_palette); + + int num_palette; + png_colorp plte; + png_get_PLTE(png_ptr, info_ptr, &plte, &num_palette); + + if (png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE)) { + printf("Palette : %d colors\n", num_palette); } else { printf("Palette : NO\n"); } - printf("ROW bytes : %ld\n", info_ptr->rowbytes); - + printf("ROW bytes : %d\n", png_get_rowbytes(png_ptr, info_ptr)); raw_row_pointer = buf; - png_row_pointer = (png_byte*) malloc(info_ptr->rowbytes); + png_row_pointer = (png_byte*) malloc(png_get_rowbytes(png_ptr, info_ptr)); for (row=0; rowwidth < 3744U) + if (png_get_image_width(png_ptr, info_ptr) < 3744U) memset(raw_row_pointer, 0, 3744); - switch (info_ptr->color_type) { + switch (png_get_color_type(png_ptr, info_ptr)) { case PNG_COLOR_TYPE_GRAY: - for (col=0; colwidth; col++) { + for (col=0; colwidth; col++) { + for (col=0; colpalette[c].red; - g = info_ptr->palette[c].green; - b = info_ptr->palette[c].blue; + r = plte[c].red; + g = plte[c].green; + b = plte[c].blue; c = (r*11 + g*16 + b*5) / 32; raw_row_pointer[col] = c ^ 0xFF; } break; case PNG_COLOR_TYPE_RGB: - for (col=0; colwidth; col++) { + for (col=0; colwidth; col++) { + for (col=0; colwidth; col++) { + for (col=0; col