diff --git a/src/gfx/process.cpp b/src/gfx/process.cpp index cfab0a5b..270e2a2e 100644 --- a/src/gfx/process.cpp +++ b/src/gfx/process.cpp @@ -179,8 +179,13 @@ struct Image { std::unordered_set, decltype(hashPair)> fusions; // Register colors from `png` into `colors` - for (uint32_t y = 0; y < png.height; ++y) { - for (uint32_t x = 0; x < png.width; ++x) { + uint32_t const pxLeft = options.inputSlice.width ? options.inputSlice.left : 0; + uint32_t const pxTop = options.inputSlice.height ? options.inputSlice.top : 0; + uint32_t const pxRight = options.inputSlice.width ? options.inputSlice.right() : png.width; + uint32_t const pxBottom = + options.inputSlice.height ? options.inputSlice.bottom() : png.height; + for (uint32_t y = pxTop; y < pxBottom; ++y) { + for (uint32_t x = pxLeft; x < pxRight; ++x) { if (Rgba const &color = pixel(x, y); color.isAmbiguous()) { // Report ambiguously transparent or opaque colors if (uint32_t css = color.toCSS(); ambiguous.find(css) == ambiguous.end()) { diff --git a/test/gfx/trans_outside_slice.flags b/test/gfx/trans_outside_slice.flags new file mode 100644 index 00000000..d26d028a --- /dev/null +++ b/test/gfx/trans_outside_slice.flags @@ -0,0 +1 @@ +-L 8,8:1,1 diff --git a/test/gfx/trans_outside_slice.out.2bpp b/test/gfx/trans_outside_slice.out.2bpp new file mode 100644 index 00000000..920ab83e --- /dev/null +++ b/test/gfx/trans_outside_slice.out.2bpp @@ -0,0 +1 @@ +<Ì<Ì<Ì<Ì<Ì<Ì<Ì<Ì \ No newline at end of file diff --git a/test/gfx/trans_outside_slice.out.attrmap b/test/gfx/trans_outside_slice.out.attrmap new file mode 100644 index 00000000..f76dd238 Binary files /dev/null and b/test/gfx/trans_outside_slice.out.attrmap differ diff --git a/test/gfx/trans_outside_slice.out.pal b/test/gfx/trans_outside_slice.out.pal new file mode 100644 index 00000000..8d370931 Binary files /dev/null and b/test/gfx/trans_outside_slice.out.pal differ diff --git a/test/gfx/trans_outside_slice.out.tilemap b/test/gfx/trans_outside_slice.out.tilemap new file mode 100644 index 00000000..f76dd238 Binary files /dev/null and b/test/gfx/trans_outside_slice.out.tilemap differ diff --git a/test/gfx/trans_outside_slice.png b/test/gfx/trans_outside_slice.png new file mode 100644 index 00000000..567a5033 Binary files /dev/null and b/test/gfx/trans_outside_slice.png differ