java实现对gif与jpg之间的相互转化
来源:互联网 发布:正统三国许褚数据 编辑:程序博客网 时间:2024/06/04 18:01
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import javax.imageio.stream.FileImageInputStream;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class jpgToGif {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//jpgToGif();
gifTojpg();
}
/*
* 将JPG图片转层gif动画
* */
public static void jpgToGif(){
try{
BufferedImage src = ImageIO.read(new File("c:/1.jpg")); // 读入文件
BufferedImage src1 = ImageIO.read(new File("c:/2.jpg")); // 读入文件
BufferedImage src2 = ImageIO.read(new File("c:/3.jpg")); // 读入文件
AnimatedGifEncoder e = new AnimatedGifEncoder();
e.setRepeat(0);
e.start("c:/laoma.gif");
e.setDelay(100); // 1 frame per sec
e.addFrame(src);
e.setDelay(1000);
e.addFrame(src1);
e.setDelay(100);
e.addFrame(src2);
e.finish();
}catch(IOException e){
e.printStackTrace();
}
}
/*
* 将GIF转JPG
* */
private synchronized static void gifTojpg() throws IOException {
GifDecoder decoder = new GifDecoder();
InputStream is = new FileInputStream("c:/bb.gif");
if(decoder.read(is) != 0){
System.out.println("读取有错误");
return ;
}
is.close();
System.out.println(" 帧是数量: "+decoder.frameCount);
for(int i=0;i<decoder.frameCount;i++){
BufferedImage frame = decoder.getFrame(i);
int delay = decoder.getDelay(i);
System.out.println("延迟时间: "+delay);
OutputStream out = new FileOutputStream("c:/"+i+"bb.jpg");
ImageIO.write(frame, "jpeg", out);//将frame 按jpeg格式 写入out中
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
out.flush();
out.close();
}
System.out.println("gif to jpg");
}
}
在导入如下两个类 import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; 系统可以报错。解决的方法为,菜单栏window->preference->java->compiler->Errors/Warning->Deprecated and restricted API->Forbidden reference(access rules),将Error选择Warning即可。
- java实现对gif与jpg之间的相互转化
- Java 转换png jpg gif格式图片的相互转换的实现
- Java 中 Map与JavaBean之间的相互转化
- Java 中 Map与JavaBean之间的相互转化
- Java 中 Map与JavaBean之间的相互转化
- xml与java对象之间的相互转化
- int与NSNumber之间的相互转化,以及转化问题对数值比较的影响
- dicom文件与bmp和jpg文件的相互转化
- WideChar 与 MultiByte 之间的相互转化
- Map与JavaBean之间的相互转化
- Map与JavaBean之间的相互转化
- java中进制之间的相互转化
- 使用php对html标签与字符串html之间的相互转化
- 如何实现int与CString,char*与CString,float与CString之间的相互转化
- GNU/Linux jpg、png、gif 与 eps 格式的相互转换
- Linux下图片 jpg、png、gif 与 eps 格式的相互转换
- win32对jpg、gif图像的读取
- 自写函数实现数字与字符串之间的相互转化,不使用itoa函数
- 关于公司common.jqgrid.js文件的研究(未完)
- Google Map API使用详解(十五)——初始化GMap2对象
- Uddi注册中心教程
- 论OGRE中关于物体的旋转与朝向.
- 几个疑问
- java实现对gif与jpg之间的相互转化
- JEECG 列表行编辑模式下实现文本的xheditor富文本框编辑器
- Google Map API使用详解(十六)——使用GMapOptions定制你的Google Map
- Google Map API使用详解(十七)——实现自定义叠加层
- linux内核构建过程
- how-to-make-a-rpg
- Google Map API使用详解(十八)——添加快捷键功能
- 主题:精通JavaScript DOM事件
- Google Map API使用详解(十九)——实现Google Map本地搜索框(上)