Theseus 模组文档
API 参考 / 渲染、资源与语言

RenderImage


想先跑起来?

这一页是签名与行为参考。加载后的图片句柄,交给 RenderCanvas 绘制。直接做一遍:教程 · 贴图与译文。

用途:图像句柄。由资源入口加载,或用 ResourceManager#createImage 从像素创建;模组不能自行构造。

完整签名

java
public interface RenderImage {

    int width();

    int height();

    int[] getPixelsARGB();
}

width() / height()

签名:

java
int width();

int height();

行为:图像像素尺寸。绘制时若给了目标尺寸会被拉伸;HitEffectStyles 的图片序列用该尺寸 × scale 决定实际大小。

getPixelsARGB()

签名:

java
int[] getPixelsARGB();

行为:返回整幅图的 ARGB 像素,长度 width() * height(),行优先,每像素 0xAARRGGBB(Alpha 前置)。

每次调用都会复制像素,成本随尺寸上升——不要每帧调用;一次性读出、处理后经 ResourceManager#createImage 生成新图缓存起来。

示例:整体变暗后生成新图

java
int[] px = src.getPixelsARGB();
for (int i = 0; i < px.length; i++) {
    int a = (px[i] >>> 24) & 0xFF;
    int r = (px[i] >> 16) & 0xFF;
    int g = (px[i] >> 8) & 0xFF;
    int b = px[i] & 0xFF;
    px[i] = (a << 24) | ((r / 2) << 16) | ((g / 2) << 8) | (b / 2);
}
RenderImage dimmed = ctx.resources().createImage(src.width(), src.height(), px);