Я уже возился с массивами с размерами пикселей. Мне удалось сделать некоторый код, который масштабирует пиксели при их рендеринге. Проблема с кодом заключается в том, что я могу масштабировать пиксели только целыми числами (1, 2, 3 и т. Д.). Я хочу иметь возможность масштабировать пиксели с помощью двойного (.001, .002 и т. Д.), Поэтому я не ограничусь лишь несколькими размерами изображений. Вот код, который я написал:Масштабирование пиксельного массива в Java
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, когда они были прочитаны.
Не очень легко, нет, и вы закончите с размытыми результатами. Если вы все равно хотите идти вперед, подумайте об этом как о сетке цветов, накладывающей более тонкую сетку, и глядя на результаты этой тонкой сетки. Вам потребуется принять средневзвешенное значение 2 или 4 пикселя, по крайней мере, для некоторых пикселей. – raptortech97