我一直在重新调整像素阵列的大小。我已经设法制作了一些代码,可以在渲染像素时放大像素。该代码的问题是,我只能用整数(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
,如图所示,或者让图形上下文处理它,如图。