是否可以在不创建新图像的情况下将子图像绘制到 canvas

Is it possible to draw a sub image to a canvas witout creating a new Image

我最近一直在试验一些自定义组件,但在资源分配方面遇到了一些问题。 例如,如果我有这样的方法:

void paintSubImage(Graphics g, int x, int y, int w, int h, Image img){
    g.drawImage(img.subImage(x,y, w, h), 0, 0);
}

在这种情况下,对 subImage 的调用实际上生成了一个新图像。 有什么办法可以解决这个问题。我不害怕直接访问 RGB int 数组,但我不确定将其绘制到图形上下文的最佳方法。

那确实效率很低。 "better" 方法是在图形目标和绘图上设置剪辑,这样只会显示您想要的图像部分。