sprite_transform — GFX2D sprite op

• 数据种类:rgba → rgba

• 调用: import fullseye as fs; fs.ledger.sprite_transform(sprite, angle_deg=0.0, scale=1.0, interp='bilinear', out_shape=None)(要直接调用实现,import gfx2d; gfx2d.sprite_transform(sprite, angle_deg=0.0, scale=1.0, interp='bilinear', out_shape=None);从台账取用则 opsgfx2d.get("sprite_transform"))

用法

绕中心旋转和/或缩放 rgba 精灵。

> 以下的详细说明为原文 —— 摘要与标题已翻译。

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.

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• gfx2d_scene — py -3.11 examples/gfx2d_scene.py

类型可衔接的下一个算子(可接受 rgba 作为输入)

premultiply · alpha_composite · sprite_blit · sprite_sheet_slice · nine_slice

同类别(sprite)

sprite_synthesize · sprite_blit · sprite_sheet_slice · nine_slice


*Provenance: gfx2d.py — GFX2D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

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