如何把Image对象存入到一个.jpg文件 我从系统剪切板里面获得了一张图片的Image对象,现在想把它保存为一个图像文件(jpg,bmp,gif....任何一种都行)请问这个代码可以怎么写????? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 javax.imageio.ImageIO.write(RenderedImage im, String formatName, File output) 用这个方法.. 给你一个生成gif图的方法,用字节流输出image ByteArrayOutputStream out1 = new ByteArrayOutputStream();saveImage(img, Color.WHITE, out1);bytes = out1.toByteArray();out1.close();FileOutputStream out2 = new FileOutputStream(outFile);out2.write(bytes);out2.close(); private static void saveImage(BufferedImage img, Color transparent, OutputStream out1) throws Exception { GifEncoder encoder = new GifEncoder(img, out1, true); BufferedImage bi = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_BYTE_INDEXED); encoder.setColorModel(bi.getColorModel()); encoder.encode(); }用的是这个包,Acme.JPM.Encoders.GifEncoder package com.dingxie.test;import java.awt.Toolkit;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.UnsupportedFlavorException;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;public class Clipboardtest { Clipboard clip = new Clipboard(""); public static void main(String[] args){ Clipboard c = new Clipboard("my"); Toolkit tool = Toolkit.getDefaultToolkit(); //取得系统剪贴板 c = tool.getSystemClipboard(); try { //读出剪贴板内的图片(若不是图片将抛出异常UnsupportedFlavorException) BufferedImage i = (BufferedImage)c.getData(DataFlavor.imageFlavor); //将之保存 ImageIO.write(i, "jpg", new File("D:/temp.jpg")); } catch (UnsupportedFlavorException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}简单实现.具体判定.保存路径和保存方式自行添加. 多了两行,前两个Clipboard 定义删除掉或合并 一片是获取JPG图片的方法,希望对你有用:注:tempImage是一个图像对像private void saveImage() { fileChooser = new JFileChooser(); try { int saved = fileChooser.showSaveDialog(null); if (saved == JFileChooser.APPROVE_OPTION) { //获取要设置的文件名(包括路径) File saveFileName = fileChooser.getSelectedFile(); //获取要保存文件的名字 String fileName = new String(saveFileName.getPath() + ".jpg"); //1.首先创建一个输出流(从内存输出到硬盘) FileOutputStream fileOutPut = new FileOutputStream(fileName); //2.然后把输出流用JPEG编码器进行包裹,其实就是把输出流连接到编码器 encoder = JPEGCodec.createJPEGEncoder(fileOutPut); //把BufferedImage对象进行编码(有默认的保存路径) encoder.encode((BufferedImage) tempImage); fileOutPut.flush(); fileOutPut.close(); } } catch (Exception e) { e.printStackTrace(); } } 谢谢,楼上的各位,我后来没存到文件,所以,没有试验,不过感觉都还行就是有点担心 ImageIO.write(BufferImage..),我传的是一个Image不知道是否可行 【提问】怎么通过程序让电脑发出报警声音 关于一个鼠标的事件,希望高手能进来帮帮忙。 JPanel中绘图最小化打开图像消失 为什么jdk1.4里面的map存放不了int型的建和值? runtime与外部应用程序交互的问题 关于网络蜘蛛的内容? 求购 J2ME 短信加密程序原代码 常用Linux系统的镜像地址(现只有ubuntu和fedora,持续更新ing) Access数据库的连接方法 菜鸟动态菜单问题 解析XML文件时的问题 java语句行的分行书写
用这个方法..
ByteArrayOutputStream out1 = new ByteArrayOutputStream();
saveImage(img, Color.WHITE, out1);
bytes = out1.toByteArray();
out1.close();
FileOutputStream out2 = new FileOutputStream(outFile);
out2.write(bytes);
out2.close();
private static void saveImage(BufferedImage img, Color transparent,
OutputStream out1) throws Exception {
GifEncoder encoder = new GifEncoder(img, out1, true);
BufferedImage bi = new BufferedImage(img.getWidth(), img.getHeight(),
BufferedImage.TYPE_BYTE_INDEXED);
encoder.setColorModel(bi.getColorModel());
encoder.encode();
}用的是这个包,Acme.JPM.Encoders.GifEncoder
package com.dingxie.test;import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;import javax.imageio.ImageIO;
public class Clipboardtest { Clipboard clip = new Clipboard("");
public static void main(String[] args){
Clipboard c = new Clipboard("my");
Toolkit tool = Toolkit.getDefaultToolkit();
//取得系统剪贴板
c = tool.getSystemClipboard();
try {
//读出剪贴板内的图片(若不是图片将抛出异常UnsupportedFlavorException)
BufferedImage i = (BufferedImage)c.getData(DataFlavor.imageFlavor);
//将之保存
ImageIO.write(i, "jpg", new File("D:/temp.jpg"));
} catch (UnsupportedFlavorException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
简单实现.具体判定.保存路径和保存方式自行添加.
注:tempImage是一个图像对像
private void saveImage() {
fileChooser = new JFileChooser();
try {
int saved = fileChooser.showSaveDialog(null);
if (saved == JFileChooser.APPROVE_OPTION) {
//获取要设置的文件名(包括路径)
File saveFileName = fileChooser.getSelectedFile();
//获取要保存文件的名字
String fileName = new String(saveFileName.getPath()
+ ".jpg");
//1.首先创建一个输出流(从内存输出到硬盘)
FileOutputStream fileOutPut = new FileOutputStream(fileName);
//2.然后把输出流用JPEG编码器进行包裹,其实就是把输出流连接到编码器
encoder = JPEGCodec.createJPEGEncoder(fileOutPut);
//把BufferedImage对象进行编码(有默认的保存路径)
encoder.encode((BufferedImage) tempImage);
fileOutPut.flush();
fileOutPut.close();
}
} catch (Exception e) {
e.printStackTrace();
} }
就是有点担心 ImageIO.write(BufferImage..),我传的是一个Image不知道是否可行