画像ファイルをPNG形式からJPEG形式に変換する場合は、形式が異なるため、JPEG形式の画像ファイルにはPNGの一部のエフェクトが存在しない可能性がありますので、品質の低下が予想されます。たとえば、PNGの透明な背景はJPEG画像ファイルではサポートされていません。詳細についてはGoogleにお問い合わせください。
例
透明な背景を持つPNGファイルを白い背景を持つJPEG画像に変換するJavaの例を次に示します。
File:javanullpointer.png、4kb
以下のコードを実行します。
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
リンク://タグ/画像/[画像]リンク://タグ/java/[java]リンク://タグ/jpeg/[jpeg]リンク://タグ/png/[png]