用Java缩放像素阵列



我一直在重新调整像素阵列的大小。我已经设法制作了一些代码,可以在渲染像素时放大像素。该代码的问题是,我只能用整数(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读取时的实际尺寸(以像素为单位)。

要灵活选择重采样算法,请使用AffineTransformOp,如图所示,或者让图形上下文处理它,如图。

最新更新