怎么用java将png图片转换成jpg格式的图片

png是一种背景透明格式的图片,大量用于网络上,保真性很好,JPG是压缩图片,占用空间少。但有一些失真,所以在将png图片转换成jpg图片之后,肯定是有一些差异的,毕竟这是两种不同的格式.

下面用一个例子将一个透明的png转换成背景为白色的jpg图片
程序代码 程序代码

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:\\java.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:\\java.jpg"));

      System.out.println("Done");

    } catch (IOException e) {

      e.printStackTrace();

    }

   }

}


除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
[本日志由 轻舞肥羊 于 2013-01-04 02:31 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: java
相关日志:
评论: 1 | 引用: 0 | 查看次数: -
回复回复美工阿威[2015-10-04 02:04 PM | del]
不错,比stackoverflow上的多数答案更简洁靠谱。
回馈两方法:
public static BufferedImage toOpaqueImage(BufferedImage input){
        return toOpaqueImage(input,Color.WHITE);
    }
    public static BufferedImage toOpaqueImage(BufferedImage input,Color bgColor){
        BufferedImage output=new BufferedImage(input.getWidth(), input.getHeight(), BufferedImage.TYPE_INT_RGB);
        output.createGraphics().drawImage(input, 0, 0, input.getWidth(), input.getHeight(), bgColor, null);
        return output;
    }
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.