Конвертируем PNG в JPEG на Java – Devcolibri – Android для начинающих

Конвертируем PNG в JPEG на Java

Давайте научимся конвертировать картинки с PNG в JPEG формат? Сделать это не так уж сложно как могло бы казаться.

Что на потребуется для этого?

1) Это картинка в PNG формате (devcolibri.png – 94Kb):

2) Желание преобразовать PNG в JPEG формат :)

Внимание!
При изменении формата изображения с PNG на JPEG ожидайте ухудшение качества изображения так как JPEG не поддерживает некоторые свойства формата PNG (например прозрачность).

Шаг 1.

Создаем буфер в котором будем хранить считанное изображение:

BufferedImage bufferedImage = ImageIO.read(new File("c:\\devcolibri.png"));

Шаг 2.

Теперь нужно создать новое изображение которое в будущем и будет нашим преобразованным JPEG.

Для этого создадим в буфере новое изображение:

BufferedImage newBufferedImage = new BufferedImage(bufferedImage.getWidth(),
			bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB);

Новое изображение должно быть такой же высоты и ширины.

Шаг 3.

Записываем на созданное в буфере с читанное PNG изображение и заливаем фон белым цветом:

newBufferedImage.createGraphics().drawImage(bufferedImage, 0, 0, Color.WHITE, null);

Шаг 4.

Сохраняем уже с конвертированную картинку:

ImageIO.write(newBufferedImage, "jpg", new File("c:\\devcolibri.jpg"));

В результате мы получим новое изображение: devcolibri.jpg – 181Kb

Шаг 5.

Выводи сообщение об успешной конвертации изображения, потому что конвертация может занять некоторое время и что бы видеть её окончание. Но это не обязательно!

System.out.println("Готово!");

Полный листинг кода.

package com.devcolibri;

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ConvertImageFile {

   public static void main(String[] args) {
	BufferedImage bufferedImage;
	try {
	  //Считываем изображение в буфер
	  bufferedImage = ImageIO.read(new File("c:\\devcolibri.png"));

	  // создаем пустое изображение RGB, с тай же шириной высотой и белым фоном
	  BufferedImage newBufferedImage = new BufferedImage(bufferedImage.getWidth(),
			bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB);
	  newBufferedImage.createGraphics().drawImage(bufferedImage, 0, 0, Color.WHITE, null);

	  // записываем новое изображение в формате jpg
	  ImageIO.write(newBufferedImage, "jpg", new File("c:\\devcolibri.jpg"));

	  System.out.println("Готово!");

	} catch (IOException e) {
	  e.printStackTrace();
	}

   }

}

Как видите ничего сложного нет.

ПОХОЖИЕ ПУБЛИКАЦИИ

    None Found

14036
08/04/2013

1 комментариев к статье "Конвертируем PNG в JPEG на Java"

Добавить комментарий

Сайт использует cookie-файлы для того, чтобы вам было удобнее им пользоваться. Для продолжения работы с сайтом, вам необходимо принять использование cookie-файлов.

Я ознакомлен(а)