zoukankan      html  css  js  c++  java
  • JAVA 图片png和jpeg格式的转化方式

    最近遇到一些需求,需要对图片做格式转化,比如将png图片转为jpeg,或者将jpeg转为png,网上有部分代码,但是发现有些是不正确的,

    毕竟png是4通道,32位,而jpeg是3通道,24位,因此两个图片之间转化时,肯定需要注意这些问题,而不是简单的图片内容的转化。

    下面小编是小编亲测实用的java方法:

    public class ImageConvert {
    
        private static final String IMAGE_PATH_PNG = "F:\Gis开发\学习资料\tile\3_0_1.png";
        private static final String IMAGE_PATH_PNG_NEW = "F:\Gis开发\学习资料\tile\3_0_1_new.png";
        private static final String IMAGE_PATH_JPEG = "F:\Gis开发\学习资料\tile\3_0_1.jpg";
        private static final String IMAGE_PATH_JPEG_NEW = "F:\Gis开发\学习资料\tile\3_0_1_new.jpg";
    
        public static void main(String[] args) {
            png2jpeg();
        }
    
        public static void png2jpeg() {
            //读取图片
            FileOutputStream fos =null;
            try {
                BufferedImage bufferedImage = ImageIO.read(new File(IMAGE_PATH_PNG));
                //转成jpeg、
                BufferedImage bufferedImage1 = new BufferedImage(bufferedImage.getWidth(),
                                                                 bufferedImage.getHeight(),
                                                                 BufferedImage.TYPE_INT_RGB);
                bufferedImage1.createGraphics().drawImage(bufferedImage,0,0, Color.white,null);
                fos = new FileOutputStream(IMAGE_PATH_JPEG_NEW);
                ImageIO.write(bufferedImage,"jpg",fos);
                fos.flush();
            } catch (IOException e) {
                e.printStackTrace();
                try {
                    fos.close();
                } catch (IOException ioException) {
                    ioException.printStackTrace();
                }
            }
        }
    
        public static void jpeg2png() {
            //读取图片
            try {
                BufferedImage bufferedImage = ImageIO.read(new File(IMAGE_PATH_JPEG));
                //转成png、
                BufferedImage bufferedImage1 = new BufferedImage(bufferedImage.getWidth(),
                                                                bufferedImage.getHeight(),
                                                                BufferedImage.TYPE_INT_ARGB);
                bufferedImage1.createGraphics().drawImage(bufferedImage,0,0, Color.white,null);
                FileOutputStream fos = new FileOutputStream(IMAGE_PATH_PNG_NEW);
                ImageIO.write(bufferedImage1,"png",fos);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    javascript循环结构练习
    个人复习JavaScript重点(总结一)
    第十章汽车租凭系统
    员工执行
    第六章预习
    第五章使用Dictionary替换List<t>实现功能
    第5章体检套餐管理系统
    JAVA面试题
    AJAX
    SSM中的登陆验证码
  • 原文地址:https://www.cnblogs.com/ljy-20180122/p/13283564.html
Copyright © 2011-2022 走看看