Convertir un fichier image PNG en JPEG en Java

Convertir un fichier image PNG en JPEG en Java

Veuillez vous attendre à une perte de qualité lors de la conversion du fichier image de PNG en JPEG, car les deux sont de format différent, certains effets en PNG peuvent ne pas exister dans le fichier image JPEG. Par exemple, l'arrière-plan transparent en PNG n'est pas pris en charge dans le fichier image JPEG, recherchez-le sur Google pour plus d'informations.

Exemple

Voici un exemple Java pour convertir un fichier PNG avec un fond transparent en une image JPEG avec un fond blanc.

Fichier: javanullpointer.png, 4kb

png file with transparent background

Exécutez sous le code.

package com.example;

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 {

      //read image file
      bufferedImage = ImageIO.read(new File("c:\\javanullpointer.png"));

      // create a blank, RGB, same width and height, and a white background
      BufferedImage newBufferedImage = new BufferedImage(bufferedImage.getWidth(),
            bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB);
      newBufferedImage.createGraphics().drawImage(bufferedImage, 0, 0, Color.WHITE, null);

      // write to jpeg file
      ImageIO.write(newBufferedImage, "jpg", new File("c:\\javanullpointer.jpg"));

      System.out.println("Done");

    } catch (IOException e) {

      e.printStackTrace();

    }

   }

}

Sortie

Un nouveau fichier jpg est généré, avec un fond blanc.

Fichier: javanullpointer.jpg, 9kb

jpg file with white background

Note
Ce code est testé avec quelques fichiers image PNG, le fichier image JPEG converti est dans une qualité acceptable.