Я знаю, как сделать простое масштабирование, но как я могу масштабировать изображение максимум до 300 * 100 пикселей? я искал класс API AffineTransform, но не смог найти для этого метод.
спасибо заранее
Я знаю, как сделать простое масштабирование, но как я могу масштабировать изображение максимум до 300 * 100 пикселей? я искал класс API AffineTransform, но не смог найти для этого метод.
спасибо заранее
Я думаю, вам нужно будет «вернуться» к вашему коэффициенту масштабирования, определив, какой масштаб приведет к увеличению вашей высоты до 300 пикселей и ширины до 100.
Что-то типа
double xScale = 100/image.getWidth();
double yScale = 300/image.getHeight();
AffineTransform transform = new AffineTransform();
transform.setToScale( xScale, yScale );
//paint code goes here
Однако это не будет масштабировать его равномерно. Для этого вам нужно использовать одинаковую шкалу для x и y. Поэтому, если вы пытаетесь убедиться, что ваше изображение помещается на экране/дисплее/странице, вы должны использовать масштаб самого широкого измерения. поэтому, чтобы использовать приведенный выше пример...
double xScale = 100/image.getWidth();
double yScale = 300/image.getHeight();
double theScale = xScale > yScale ? xScale : yScale;
AffineTransform transform = new AffineTransform();
transform.setToScale( theScale , theScale );
//paint code goes here
Это всего лишь предложение, надеюсь, оно поможет.
Рассчитайте коэффициенты преобразования на основе ширины/высоты изображения относительно целевой ширины/высоты.
Напишите немного кода, и если вы столкнетесь с проблемой, задайте конкретный вопрос.