由一个Imge转化成BufferedImage,源码如下:
//covert Image object to BufferedImage object
//pic (Image type)
private BufferedImage convertImageToBuffer(){
BufferedImage bufferedImage = new BufferedImage(pic
.getWidth(null), pic.getHeight(null),
BufferedImage.TYPE_INT_RGB);
Graphics g = bufferedImage.createGraphics();
g.drawImage(pic, 0, 0, null);
g.dispose();
return bufferedImage;
}
获取JPanel上的图像,并将其保存为jpg格式图片:
public static void saveImage(Component com){
int comH=com.getHeight();
int comW=com.getWidth();
BufferedImage bufferImage=new BufferedImage(comW,comH,BufferedImage.TYPE_INT_RGB);
Graphics2D g2=bufferImage.createGraphics();
g2.setBackground(Color.white);
com.paint(g2);
g2.dispose();
FileFilter filter = new FileFilter() {
@Override
public boolean accept(File f) {
// TODO Auto-generated method stub
return f.isFile() && f.getName().endsWith("jpg")
|| f.getName().endsWith("JPG");
}
@Override
public String getDescription() {
// TODO Auto-generated method stub
return "JPG or jpg";
}
};
JFileChooser fileChoose = new JFileChooser();
fileChoose.setFileFilter(filter);
int result = fileChoose.showSaveDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
File file = fileChoose.getSelectedFile();
String path = file.getPath();
try {
FileOutputStream output = new FileOutputStream(path);
JPEGImageEncoder jpg = JPEGCodec.createJPEGEncoder(output);
jpg.encode(bufferImage);
output.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ImageFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
本篇文章将详细探讨如何将`Image`对象转换为`BufferedImage`,以及这样做的原因和好处。 首先,`java.awt.Image`是一个抽象类,它提供了一种通用的接口来表示图像数据。`Image`对象可以从网络、文件、内存或其他...
2. **绘制图像到缓冲区**:接下来,利用`BufferedImage`的`getGraphics()`方法获取一个`Graphics`对象,然后使用该对象的`drawImage()`方法将原始`Image`对象绘制到缓冲图像上。 3. **释放图形资源**:完成绘制后,...
3. **创建合成图片**:使用`new BufferedImage()`创建一个具有新尺寸的空白`BufferedImage`对象。 4. **绘制图片**:遍历每一张图片,使用`Graphics2D`对象的`drawImage()`方法将它们绘制到新创建的`BufferedImage`...
// 假设image是你要保存的BufferedImage对象 BufferedImage image = ...; try { File output = new File("output.bmp"); ImageIO.write(image, "bmp", output); } catch (IOException e) { e....
2. **自定义序列化逻辑**:由于`Image`对象不可序列化,我们可以创建一个包装类,该类包含`BufferedImage`实例和其他相关信息,并实现`Serializable`接口。在这个包装类中,重写`writeObject()`和`readObject()`方法...
总结来说,理解和掌握`Mat`与`BufferedImage`之间的转换对于在Java环境中有效地使用OpenCV至关重要。无论是进行图像显示、保存还是进一步的处理,这种转换都是不可或缺的步骤。熟练运用这些转换方法,可以极大地扩展...
这段代码会读取名为"image.jpg"的JPG图像,并将其加载到一个`BufferedImage`对象中,这样我们就可以对图像进行进一步的操作了。 2. **图像查看器的基本原理**:描述中提到的是一个用于查看图像的应用,这通常涉及到...
1. 首先,创建一个 BufferedImage 对象,并将其设置为读取指定图片文件。 2. 然后,使用 BufferedImage 的 `getWidth()` 和 `getHeight()` 方法获取图片的宽度和高度。 以下是使用 BufferedImage 获取图片尺寸的...
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR); //基于图片对象打开绘图 Graphics2D graphics = image.createGraphics(); //绘制圆形 graphics.setColor...
本文将详细探讨如何在Java、Python和C#这三种常用编程语言中实现图像(Image)与字节数组(byte[])之间的相互转换。 **Java中的转换** 1. **Image转byte[]** 在Java中,我们可以使用`FileInputStream`读取图片...
4. 生成图像:调用HtmlImageGenerator的generateImage()方法,将HTML页面渲染成BufferedImage对象,然后可以将其保存为JPG、PNG等图像格式。 例如,以下是一个简单的使用示例: ```java import ...
在Android开发中,有时我们需要对图像进行处理,例如解析JPEG图像并将其转换为BufferedImage对象。BufferedImage是Java AWT库中的一个类,提供了一种更高级别的图像操作接口。在Android环境中,虽然不直接支持AWT库...
这篇博文将探讨如何在Java中实现这一过程,主要涉及`Image`对象与`String`对象之间的转换方法。 首先,我们要理解这两种类型的基本概念。`String`是Java中的一个类,用于表示不可变的字符序列,通常用来存储文本...
`BufferedImage`对象有一个`getRGB(x, y)`方法,用于获取图像中某个位置的像素值,以及一个`setRGB(x, y, pixel)`方法,用于设置该位置的像素值。 像素值通常表示为一个32位整数,其中包含红、绿、蓝(RGB)三个...
4. 转换为BufferedImage:如果需要进行进一步的图像处理,可以将Image对象转换为BufferedImage,例如`BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), ...
public static void saveImage(BufferedImage image, String filePath) throws Exception { ImageIO.write(image, "PNG", new File(filePath)); } public static void main(String[] args) throws Exception { ...
接着,`asBufferedImage()`方法将网页内容转换为BufferedImage对象,最后使用`ImageIO.write()`方法将图像保存为PNG格式的文件。 **CSS支持** `html2image`库也支持CSS,这意味着你可以为你的HTML内容添加复杂的...
3. 创建一个`BufferedImage`对象,设置其宽度和高度为报表页面宽度和高度的四倍,类型为`BufferedImage.TYPE_INT_RGB`,以确保有足够的空间来绘制报表内容。 4. 获取`BufferedImage`的`Graphics2D`实例`g`。 5. 设置...
然后,我们可以通过`Graphics2D`对象在BufferedImage上绘制和编辑图像。例如,我们可以改变图像的透明度: ```java Graphics2D g2d = image.createGraphics(); g2d.setComposite(AlphaComposite.getInstance...
`Image`接口则代表了一个图像对象,可以用来加载、显示和处理图像。在`java.awt.image`子包中,还有如`BufferedImage`和`WritableRaster`等类,它们提供更高级的图像操作功能。 1. **图像加载与显示** - `...