IFF: set every pixel of each line

Images are allocated without being initialized, so a reader must write
every pixel of every line. The IFF reader did not always:

- Maya: nothing checked that the tiles cover the image: areas no tile
  covers are now opaque black.
- readStandardImage(), readCDIImage(), readRGFXImage() and
  readDEEPImage() copied min(bytesPerLine, decoded line) bytes, and some
  decoded lines are shorter than the image line:
  - a PBM with 8 bitplanes and a 64 color CMAP was taken for HAM and
    allocated as RGB888, while PBM data are one index per pixel: HAM is
    no longer applied to PBM images;
  - other mismatches (e.g. HAM without CMAP, RGB8 with 32 bitplanes, CD-i
    CLUT3 or RGB888, a truncated CD-i line) are now an error: a decoded
    line that does not cover the image line is refused.

Added the read test pbm_64colors.iff, which fails without this change.
This commit is contained in:
Ana Bobillo
2026-10-29 08:27:06 +01:00
committed by Mirco Miranda
parent d6e97b1bd1
commit 296444189e
4 changed files with 26 additions and 14 deletions
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B