Caller-chosen display tile size — render square tiles from non-square BIF
Caller-chosen display tile size — render uniform/square display tiles from
formats that store non-square tiles (legacy BIF).
Added
Level.StitchedGridFor(tile Size) Size—StitchedGridfor a caller-chosen
display tile size (ceil(Size/tile)), so a viewer can render uniform/square
display tiles independent of the storedTileSize.Level.StitchedTileIntonow uses the dst's dimensions as the display tile
size on overlapping levels (stitched BIF). The composite is region-based,
so dst may be any size — a viewer can render e.g. 512×512 display tiles even
though legacy BIF stores non-square 1024×1360 tiles (which choke renderers
that assume square). The result is pixel-identical toReadRegionover
[tx*dst.W, ty*dst.H, dst.W, dst.H], and the per-source-tile decode-once frame
cache still applies. Pair it withStitchedGridFor(dstSize). Existing callers
passing aTileSize-sized dst are unchanged.
Notes
- Scoped to overlapping levels (BIF). Non-overlapping formats store square
tiles and keep the existing fast path:StitchedTileIntothere still behaves
likeDecodedTileInto(dst must equalTileSize); useReadRegionfor an
arbitrary rectangle.StitchedTile/StitchedGrid(theTileSize-default
convenience forms) are unchanged.