画像ファイルを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]