java图片格式转换的三段代码
作者:lijiao 发布时间:2023-01-22 05:43:02
标签:java,图片格式
网上关于java图片格式内容的文章不是很多,也不是很完整,小编搜集了三段java图片格式转换代码,分享给大家:
第一段:java图片格式转换代码
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import javax.imageio.*;
public class FormatConversion {
public static final String JPG = "jpg";
public static final String GIF = "gif";
public static final String PNG = "png";
public static final String BMP = "bmp";
public static void main(String[] args) {
String src = "E:\\2.";
new FormatConversion().Conversion(JPG,PNG,src);//JPG转成PNG
new FormatConversion().Conversion(JPG,GIF,src);//JPG转成GIF
new FormatConversion().Conversion(JPG,BMP,src);//JPG转成BMP
//其余格式转化只要调用Conversion函数即可
}
//inputFormat表示原格式,outputFormat表示转化后的格式
public void Conversion(String inputFormat,String outputFormat,String src){
try {
File input = new File(src+inputFormat);
BufferedImage bim = ImageIO.read(input);
File output = new File(src+outputFormat);
ImageIO.write(bim, outputFormat, output);
} catch (IOException e) {
e.printStackTrace();
}
}
}
第二段:java图片格式转换代码
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ConverterUtil {
// JGP格式
public static final String JPG = "jpeg";
// GIF格式
public static final String GIF = "gif";
// PNG格式
public static final String PNG = "png";
// BMP格式
public static final String BMP = "bmp";
public static void converter(File imgFile,String format,File formatFile)
throws IOException{
BufferedImage bIMG =ImageIO.read(imgFile);
ImageIO.write(bIMG, format, formatFile);
}
public static void main(String[] args) {
try {
// 转换为JGP
ConverterUtil.converter(new File("c:\\psb.jpg"),JPG, new File("c:\\psb2.jpg"));
// 转换为GIF
ConverterUtil.converter(new File("c:\\psb.jpg"),GIF, new File("c:\\psb2.gif"));
// 转换为PNG
ConverterUtil.converter(new File("c:\\psb.jpg"),PNG, new File("c:\\psb2.png"));
// 转换为BMP
ConverterUtil.converter(new File("c:\\psb.jpg"),BMP, new File("c:\\psb2.bmp"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
第三段:java图片格式转换代码
package cn.xsbiz.servlet.test;
import java.io.FileOutputStream;
import java.io.OutputStream;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import com.sun.media.jai.codec.BMPEncodeParam;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageEncoder;
import com.sun.media.jai.codec.JPEGEncodeParam;
/*
* 可以实现jpg/tif/bmp 等图片之间格式得互相转换
*/
public class Test {
public static void main(String[] args) throws Exception {
/* tif转换到jpg格式 */
String input2 = "d:/img/a.tif";
String output2 = "d:/img/a.jpg";
RenderedOp src2 = JAI.create("fileload", input2);
OutputStream os2 = new FileOutputStream(output2);
JPEGEncodeParam param2 = new JPEGEncodeParam();
//指定格式类型,jpg 属于 JPEG 类型
ImageEncoder enc2 = ImageCodec.createImageEncoder("JPEG", os2, param2);
enc2.encode(src2);
os2.close();
/*tif转换到bmp格式*/
String inputFile = "d:/img/b.tif";
String outputFile = "d:/img/b.bmp";
RenderedOp src = JAI.create("fileload", inputFile);
OutputStream os = new FileOutputStream(outputFile);
BMPEncodeParam param = new BMPEncodeParam();
ImageEncoder enc = ImageCodec.createImageEncoder("BMP", os,param);
enc.encode(src);
os.close();//关闭流
//其他的一样的方式转换
}
}
上面三段代码的编写顺序,并不代表代码性能的好坏,大家可以在学习过程中,区分各个代码的利弊,从中总结经验,进一步掌握
java图片格式转换的方法。


猜你喜欢
- 每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖!C语言运算符优先
- 本文实例讲述了Android编程实现Toast只显示最后一条的方法。分享给大家供大家参考,具体如下:在做Android开发中,时不时的可能会
- Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问。开发Java We
- 表:需求:将表中的数据,按照一级二级分类返回给前端json数据代码实现:java代码: public class ResultIndustr
- 自定义加载yml,附源码解读昨天在对公司的微服务配置文件标准化的过程中,发现将原来的properties文件转为yml文件之后,微服务mod
- 1、什么是序列化与反序列化?序列化:指把堆内存中的 Java 对象数据,通过某种方式把对象存储到磁盘文件中或者传递给其他网络节点(在网络上传
- 目标:查询数据库中的字段,然后转换成 JSON 格式的数据,返回前台。环境:idea 2016.3.4, jdk 1.8, mysql 5.
- 问题描述通过FeignClient调用微服务提供的分页对象IPage报错{"message": "Type d
- 本文实例为大家分享了C#实现餐厅管理系统的具体代码,供大家参考,具体内容如下部分代码:fm_change_password.csusing
- 网上看了很多篇文章关于如何配置mybatis的logback日志的,复杂的简单的都有,但是有用的没几个,耽误了很多时间。通过对logback
- 一、指标监控引入jar包: <dependency> &nb
- 1.说明如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。该插件目前支持Oracle,Mysql,MariaD
- 项目结构:运行效果:========================================================下面是代
- 闲来无事想玩玩双向通信,实现类似QQ的互发消息的功能。于是乎开始学习.Net Remoting..Net Remoting 是由客户端通过R
- 标识符和关键字标识符读音 biao zhi fu什么是标识符包、类、变量、方法…等等,只要是起名的地方,那个名字就是标
- 自定义注解+springAop参数非空校验自定义注解,来对对应的方法进行入参校验,为空返回参数错误新建注解类@interface Param
- 传输层安全性协议(英语:Transport Layer Security,缩写作 TLS),及其前身安全套接层(Secure So
- java arrayList遍历的四种方法及Java中ArrayList类的用法package com.test;import java.u
- 本文实例为大家分享了使用C#写一个时钟,供大家参考,具体内容如下时钟是这样的一共使用四个控件即可:WinFrom窗体应用程序代码:using
- 业务现象代码中有一部分代码多次嵌套循环和数据处理,执行速度很慢解决方案通过多线程1、启用多线程private final static Ex