画像ファイルをPNG形式からJPEG形式に変換する場合は、形式が異なるため、JPEG形式の画像ファイルにはPNGの一部のエフェクトが存在しない可能性がありますので、品質の低下が予想されます。たとえば、PNGの透明な背景はJPEG画像ファイルではサポートされていません。詳細についてはGoogleにお問い合わせください。


透明な背景を持つPNGファイルを白い背景を持つJPEG画像に変換するJavaの例を次に示します。


File:javanullpointer.png、4kb


透明な背景を持つpngファイル、title = "javanullpointer"、width = 473、height = 92

以下のコードを実行します。

package com.mkyong;

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();

    }

   }

}

出力

白い背景の新しいjpgファイルが生成されます。


File:javanullpointer.jpg、9kb


jpgファイル、白い背景、タイトル= "javanullpointer"、width = 473、height = 92

リンク://タグ/画像/[画像]リンク://タグ/java/[java]リンク://タグ/jpeg/[jpeg]リンク://タグ/png/[png]