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);