用Java扩展像素阵列

时间:2014-10-02 01:12:43

标签: java arrays graphics scale pixel

我一直在搞乱重新调整像素数组的大小。我设法制作了一些代码,可以在渲染时放大像素。代码的问题是我只能用整数(1,2,3等)来缩放像素。我希望能够使用双精度(.001,.002等)来缩放像素,所以我不仅限于几个图像尺寸。 这是我写的代码:

public void draw(Sprite s, int xCord, int yCord, int scale){
    for(int y = 0; y < s.getHeight()*scale; y++){
        for(int x = 0; x <s.getWidth()*scale; x++){
            pixels[(x+xCord) +(y+yCord)*this.width]
                = s.pixels[(x/scale+ y/scale * s.getWidth())];
        }       
    }
}

是否可以轻松调整以允许非整数数字?

Sprite类知道s.getWidth()s.getHeight()给出的自己的宽度和高度。 高度和宽度是.png读取时的实际尺寸(以像素为单位)。

1 个答案:

答案 0 :(得分:1)

为了灵活选择resampling algorithm,请使用AffineTransformOp,如图所示here,或者让图形上下文处理它,如图here所示。