изменение размера изображения в java
У меня есть png-изображение, и я хочу изменить его размер. Как я могу это сделать? Хотя я прошел через это, я не могу понять fragment.
- Пользовательский интерфейс UWP update из Task
- Выберите «Диалоговое окно« Файл »
- Как создать уведомление в качелях
- Интерфейс Android Alarm Clock
- Какова самая короткая воспринимаемая задержка ответа приложения?
- Обновление пользовательского интерфейса в C # с использованием таймера
- Как добавить параметры в DropDownList с помощью jQuery?
- Автоматизированное тестирование веб-интерфейса
Если у вас есть Image
, для его обработки не требуются дополнительные библиотеки. Просто делать:
Image newImage = yourImage.getScaledInstance(newWidth, newHeight, Image.SCALE_DEFAULT);
Разумно замените newWidth
и newHeight
размерами указанного изображения.
Обратите внимание на последний параметр: он указывает во время выполнения алгоритм, который вы хотите использовать для изменения размера.
Существуют алгоритмы, которые дают очень точный результат, однако для этого требуется большое время.
Вы можете использовать любой из следующих алгоритмов:
-
Image.SCALE_DEFAULT
: используйте алгоритм масштабирования изображения по умолчанию. -
Image.SCALE_FAST
: выберите алгоритм масштабирования изображения, который дает более высокий приоритет масштабированию, чем гладкость масштабированного изображения. -
Image.SCALE_SMOOTH
: выберите алгоритм масштабирования изображения, который обеспечивает более высокий приоритет гладкости изображения, чем скорость масштабирования. -
Image.SCALE_AREA_AVERAGING
: используйте алгоритм масштабирования изображения AreaImage.SCALE_AREA_AVERAGING
. -
Image.SCALE_REPLICATE
: используйте алгоритм масштабирования изображения,Image.SCALE_REPLICATE
в classеReplicateScaleFilter
.
См. Javadoc для получения дополнительной информации.
Мы делаем это для создания эскизов изображений:
BufferedImage tThumbImage = new BufferedImage( tThumbWidth, tThumbHeight, BufferedImage.TYPE_INT_RGB ); Graphics2D tGraphics2D = tThumbImage.createGraphics(); //create a graphics object to paint to tGraphics2D.setBackground( Color.WHITE ); tGraphics2D.setPaint( Color.WHITE ); tGraphics2D.fillRect( 0, 0, tThumbWidth, tThumbHeight ); tGraphics2D.setRenderingHint( RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR ); tGraphics2D.drawImage( tOriginalImage, 0, 0, tThumbWidth, tThumbHeight, null ); //draw the image scaled ImageIO.write( tThumbImage, "JPG", tThumbnailTarget ); //write the image to a file
Попробуй это:
ImageIcon icon = new ImageIcon(UrlToPngFile); Image scaleImage = icon.getImage().getScaledInstance(28, 28,Image.SCALE_DEFAULT);