X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=images%2Fio-libpng.c;h=f15955a64cf83c045bd953cb1afa33fd96908b96;hb=94022b1a1e317871b302946b595b2e890f4f1853;hp=a1705a376a467b044bad77a6f478cd8fec29d612;hpb=bed0e58916a622b1b66f5dedcda121e7e848355b;p=libucw.git diff --git a/images/io-libpng.c b/images/io-libpng.c index a1705a37..f15955a6 100644 --- a/images/io-libpng.c +++ b/images/io-libpng.c @@ -229,7 +229,7 @@ libpng_read_data(struct image_io *io) if (io->flags & IMAGE_IO_USE_BACKGROUND) { png_set_add_alpha(rd->png_ptr, 255, PNG_FILLER_AFTER); - read_flags |= IMAGE_ALPHA; + read_flags = (read_flags | IMAGE_ALPHA) & IMAGE_CHANNELS_FORMAT; } else if ((io->flags & IMAGE_PIXEL_FORMAT) == (COLOR_SPACE_RGB | IMAGE_PIXELS_ALIGNED)) png_set_add_alpha(rd->png_ptr, 255, PNG_FILLER_AFTER); @@ -251,7 +251,7 @@ libpng_read_data(struct image_io *io) if (!(io->flags & IMAGE_ALPHA)) { if (io->flags & IMAGE_IO_USE_BACKGROUND) - read_flags |= IMAGE_ALPHA; + read_flags = (read_flags | IMAGE_ALPHA) & IMAGE_CHANNELS_FORMAT; else png_set_strip_alpha(rd->png_ptr); } @@ -267,7 +267,7 @@ libpng_read_data(struct image_io *io) png_set_rgb_to_gray_fixed(rd->png_ptr, 1, 21267, 71514); if (!(io->flags & IMAGE_ALPHA)) if (io->flags & IMAGE_IO_USE_BACKGROUND) - read_flags |= IMAGE_ALPHA; + read_flags = (read_flags | IMAGE_ALPHA) & IMAGE_CHANNELS_FORMAT; else if ((io->flags & IMAGE_PIXEL_FORMAT) != (COLOR_SPACE_RGB | IMAGE_PIXELS_ALIGNED)) png_set_strip_alpha(rd->png_ptr); break;