Я разрабатываю игру, и вращающиеся изображения в настоящее время занимают большую часть времени в процессе расчета кадра. Для оптимизации я ищу самый быстрый способ повернуть буферизованное изображение. Я уже пробовал два метода, показанных там.java rotating bufferedimages fast
медленный метод:
public static BufferedImage rotate(BufferedImage imgOld, int deg){ //Parameter for this method are the picture to rotate and the rotation in degrees
AffineTransform at = AffineTransform.getRotateInstance(Math.toRadians(deg), (int)(imgOld.getWidth()/2), (int)(imgOld.getHeight()/2)); //initialize and configure transformation
BufferedImage imgNew = new BufferedImage(imgOld.getWidth(), imgOld.getHeight(), imgOld.getType()); //create new bufferedimage with the properties of the image to rotate
Graphics2D g = (Graphics2D) imgNew.getGraphics(); //create Graphics
g.setTransform(at); //apply transformation
g.drawImage(imgOld, 0, 0, null); //draw rotated image
g.dispose();
imgOld.flush();
return imgNew;
}
немного более быстрый способ:
public static BufferedImage rotate(BufferedImage imgOld, int deg){ //parameter same as method above
BufferedImage imgNew = new BufferedImage(imgOld.getWidth(), imgOld.getHeight(), imgOld.getType()); //create new buffered image
Graphics2D g = (Graphics2D) imgNew.getGraphics(); //create new graphics
g.rotate(QaDMath.toRadians(deg), imgOld.getWidth()/2, imgOld.getHeight()/2); //configure rotation
g.drawImage(imgOld, 0, 0, null); //draw rotated image
return imgNew; //return rotated image
}
}
я нашел много тем, связанных с вращением изображения, но ни один обсуждать самый быстрый, решение. Надеюсь, я не пропустил ни одной темы, и это не дубликат.
Надеюсь, есть кто-то более опытный, чем я там зная Готовили раствор
Вам нужно повернуть их во время выполнения? Не могли бы вы вместо этого сгенерировать повернутые изображения, которые вам нужны раньше времени, а затем просто использовать версию, которая повернула нужную сумму? –
Я тоже думал об этом варианте, но боюсь, что несколько тысяч изображений слишком много для барана, используемого java –