sprite_transform — GFX2D sprite op

Datenarten: rgbargba

Aufruf: import gfx2d; gfx2d.sprite_transform(sprite, angle_deg=0.0, scale=1.0, interp='bilinear', out_shape=None) (oder opsgfx2d.get("sprite_transform"))

Verwendung

Dreht und/oder skaliert einen `rgba`-Sprite um seine Mitte.

> Die ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.

A positive `angle_deg` turns the sprite clockwise on screen, because

the row axis points down. `interp is "nearest", "bilinear"` or

`"bicubic"` (a cubic spline; it overshoots, and the overshoot is clipped

back into the premultiplied range).

The resampling happens in premultiplied space and the result is

converted back. Interpolating straight colour instead mixes in the colour of

fully transparent pixels — usually black, and invisible in the alpha channel

— which shows up as a dark fringe. Measured on a white disc whose

transparent region is black, composited over mid-grey: the straight-space

result differs from this one by up to 0.203 and by 0.048 on average

over the pixels it changes (rotations of 13, 37 and 45 degrees; the maximum

was 0.197, 0.203, 0.156).

Exact where it can be: `angle_deg=0, scale=1` returns the input bit for

bit, and a multiple of 90 degrees with `interp="nearest"` permutes the

alpha channel exactly (colour matches to 1.2e-16, the cost of the

premultiply round trip). Everything else costs interpolation: the measured

round trip of `+37 then -37` degrees, bilinear, is a mean alpha error

of 0.0150 with a maximum of 0.8125 at the one pixel where the edge

crosses a sample.

`out_shape is (height, width)`; the default is the bounding box of the

transformed sprite, rounded up.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

gfx2d_scenepy -3.11 examples/gfx2d_scene.py

Typkompatible Folge-Operatoren (nehmen rgba als Eingabe)

premultiply · alpha_composite · sprite_blit · sprite_sheet_slice · nine_slice

Gleiche Kategorie (sprite)

sprite_synthesize · sprite_blit · sprite_sheet_slice · nine_slice


*Provenance: gfx2d.py — GFX2D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.