изменение размера изображения в java

У меня есть png Image, и я хочу изменить его размер. Как я могу это сделать? Хотя я прошел через это, я не могу понять фрагмент.

java,swing,user-interface,image,

16

Ответов: 3


49 принят

Если у вас есть Image, rezising он не требует каких - либо дополнительных библиотек. Просто делать:

Image newImage = yourImage.getScaledInstance(newWidth, newHeight, Image.SCALE_DEFAULT);

Разумеется, замените newWidth и newHeightс размерами указанного изображения.
Обратите внимание на последний параметр: он указывает во время выполнения алгоритм, который вы хотите использовать для изменения размера.

Существуют алгоритмы, которые дают очень точный результат, однако для этого требуется большое время.
Вы можете использовать любой из следующих алгоритмов:

  • Image.SCALE_DEFAULT: Используйте алгоритм масштабирования изображения по умолчанию.
  • Image.SCALE_FAST: Выберите алгоритм масштабирования изображения, который дает более высокий приоритет масштабированию, чем гладкость масштабированного изображения.
  • Image.SCALE_SMOOTH: Выберите алгоритм масштабирования изображения, который обеспечивает более высокий приоритет гладкости изображения, чем скорость масштабирования.
  • Image.SCALE_AREA_AVERAGING: Использовать алгоритм масштабирования изображения Area Averaging.
  • Image.SCALE_REPLICATE: Используйте алгоритм масштабирования изображения, реализованный в ReplicateScaleFilterклассе.

См. Javadoc для получения дополнительной информации.


10

Мы делаем это для создания эскизов изображений:

  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);
Java, качели, пользовательский интерфейс, изображения,
Похожие вопросы