`

java图像

    博客分类:
  • java
 
阅读更多
这个Java例子将演示如何来创建缓冲区图像,并且将图像显示出来。这个例子较为简单,仅仅是创建了一个缓冲区图像,并没有做任何的加工处理就将其显示出来,但这将是后面例子中缓冲区图像处理的基础。
要创建缓冲区图像, 将用到java.awt.image 包中BufferedImage 类。该类是抽象类java.awt.Image 的扩展类。本例中,为了创建一个缓冲区图像,将调用源自java.awt.component 类的createImage()方法,该方法返回一个Image 对象,然后将该对象转换为一个BufferedImage 对象,具体实现如下:
BufferedImage bimage = (BufferedImage)this.createImage(this.getWidth(),this.getHeight());
上面代码的this 代表具体程序中将创建的Canvas 类的子类。但这样,仅仅是创建了一个空的缓冲区对象,里面没有图像数据。为此还得调用BufferedImage对象的createGraphics()方法,该方法返回一个Graphics2D 的实例,然后利用这个Graphics2D 实例的drawImage()方法,就可以向缓冲区图像中存储图像数据。具体代码如下:
bimage.createGraphics().drawImage(this.image,0,0,this); // this.image 是一个Image 对象
具体实现步骤为:
1.新建一个Project,取名为JBufferedImageDemo。
2.新建一个Application,取名为JBufferedImageDemo;主窗口取名为MainFrame,标题为JBufferedImageDemo。
3.在MainFrame 类中,创建新的属性,DrawCanvas canvas,代码如下:
public class MainFrame extends JFrame {
private JPanel contentPane;
private BorderLayout borderLayout1 = new BorderLayout();
//创建一个DrawCanvas 对象,用于绘制图像
DrawCanvas canvas = new DrawCanvas();
……
}
4.编写MainFrame 类的初始化方法jbInit(),在窗口上添加创建的canvas 对象。
private void jbInit() throws Exception {
//setIconImage(Toolkit.getDefaultToolkit().createImage(MainFrame.class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("JBufferedImageDemo");
//添加canvas 对象
contentPane.add(this.canvas,BorderLayout.CENTER);
}
5.编写MainFrame 类的内部类DrawCanvas 继承Canvas 类,用来绘制图像。具体如下:
class DrawCanvas extends Canvas{
Image image; //申明将显示的图片
public DrawCanvas(){
//加载图片,改过程在之前的例子中已经讲述,不在解释
image = this.getToolkit().getImage(ClassLoader.getSystemResource("images/image.jpg"));
MediaTracker mt = new MediaTracker(this);
mt.addImage(image,1);
try{
mt.waitForAll();
}catch(Exception err){
err.printStackTrace();
}
if (image.getWidth(this) == -1){
System.out.println("Could not get the image");
System.exit(-1);
}
this.setBackground(Color.black);
}
public void paint(Graphics g){
Graphics2D g2D = (Graphics2D)g;
//创建缓冲区图像
BufferedImage bimage = (BufferedImage)this.createImage(this.getWidth(),this.getHeight());
//向缓冲区图像中存储图片数据
bimage.createGraphics().drawImage(this.image,0,0,this);
g2D.drawImage(bimage,0,0,this); //绘制缓冲区图像
}
}
分享到:
评论

相关推荐

    Java图像处理类库 Java Image Filters

    Java图像处理类库,如Java Image Filters,是Java平台上的一个重要工具,用于对数字图像进行各种操作和修改。这些类库通常包含了一系列的类和方法,可以实现图像的过滤、调整、裁剪、旋转、合成等多种功能,为开发者...

    java图片高级处理(渐变,锐化,边缘检测)

    在Java编程语言中,对图片进行高级处理包括各种图像操作,如渐变、锐化和边缘检测等。这些技术在图像处理和计算机视觉领域中至关重要,可以用于改善图像质量、识别图像特征或创建视觉效果。以下是对这些概念的详细...

    Java图片锐化和模糊特效的实现.rar

    在Java编程语言中,我们可以利用图像处理库,如Java AWT和Swing,来实现对图像的各种操作,包括锐化和模糊特效。本项目提供的"Java图片锐化和模糊特效的...对于想要学习Java图像处理的开发者来说,这是一个很好的起点。

    JAVA图像特征提取代码

    基于ImageJ的一个java图像处理插件 有完整的界面(尚未完善好) 暂时包含的是灰度特征的提取,包含像素个数,灰度直方图 正在完善形状和纹理特征,敬请期待!

    java图片裁剪

    - **坐标系统**:在Java图像处理中,图片被看作是一个二维平面,每个像素都有一个x和y坐标。 - **裁剪区域**:裁剪时定义的选取范围,通常用左上角和右下角的坐标来表示。 - **BufferedImage**:Java标准库`javax...

    java图片生成器

    Java图片生成器是一种基于Java编程语言的工具,用于创建、编辑或转换图像文件。这个工具可能包含各种功能,如绘制图形、添加文字、处理图像效果、读取和写入不同图像格式等。在Java中实现图片生成器涉及到对Java 2D ...

    java 图像处理(模糊处理、锐化处理)

    在Java编程语言中,图像处理是一项重要的功能,可以用于创建、编辑或操作图像。本教程将探讨两个关键的图像处理技术:模糊处理和锐化处理。这些技术在图像分析、图像增强以及艺术创作中有着广泛的应用。 模糊处理是...

    java图片浏览管理系统

    这些库提供了读取、解析、转换不同格式图片的能力,以及进行旋转、缩放等图像操作。 5. **多线程**:为了提升用户体验,图片加载和处理可能在后台线程中进行,避免阻塞主线程导致界面卡顿。Java的Thread类和...

    java图像识别(判断两个图是否相似)

    在Java中进行图像识别,...总的来说,Java图像识别并判断两图相似性涉及到多个层次的技术,从简单的像素比对到复杂的深度学习模型。开发者可以根据具体需求和环境选择合适的方法,并利用现有的开源工具简化实现过程。

    JAVA 图片反色处理,放大或缩小

    在JAVA编程语言中,处理图像是一项常见的任务,包括图片的反色处理、放大和缩小等操作。这些功能在各种应用场景中都有所应用,比如图像编辑软件、网站开发、数据分析等。下面将详细介绍如何使用JAVA实现这些功能。 ...

    java 图片旋转、翻转、镜像处理

    在Java编程语言中,处理图像是一项常见的任务,包括图片的旋转、翻转和镜像操作。这些功能在很多场景下都很实用,例如照片编辑、图像处理应用或是网页开发。本篇将详细介绍如何使用Java实现这些功能,并以`ImgRotate...

    Java图像绘制 Java图像绘制

    Java图像绘制Java图像绘制Java图像绘制vvvJava图像绘制Java图像绘制Java图像绘制Java图像绘制Java图像绘制Java图像绘制Java图像绘制Java图像绘制Java图像绘制Java图像绘制Java图像绘制Java图像绘制

    Java图片渐进显示

    总的来说,Java图片渐进显示技术涉及了Java图像处理、流式读取、GUI组件更新以及可能的多线程和内存管理等知识。通过学习和实践,我们可以为用户提供更流畅的图片加载体验。如果你在实现过程中遇到任何问题,欢迎...

    java图像运动识别

    Java图像运动识别是一种在计算机视觉领域中的关键技术,它主要用于分析连续的图像序列,检测和跟踪目标物体的运动轨迹。在给定的项目中,通过处理三个连续的图像帧,程序能够确定物体在图像中的移动位置。这个过程...

    Java图片处理工具ImageMagick

    Java图片处理工具ImageMagick是一个强大的跨平台图形处理库,它允许开发人员在Java应用程序中进行复杂的图像操作,包括但不限于转换、编辑、合成图像以及处理大量格式的图像文件。ImageMagick是由C语言编写的,但...

    java图像处理源代码

    Java图像处理源代码是开发者们在进行图形用户界面(GUI)开发时常用的一种工具,尤其在需要对图像进行各种操作,如裁剪、旋转、滤镜应用等场景下。这个资源提供了一个完整的Java图像处理功能集,旨在方便开发人员...

    Java OCR 图像智能字符识别技术,可识别中文

    Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...

    java处理图片大小等比例缩放,自定义修改图片大小,截取,水印

    在Java中,我们可以使用`java.awt.image.BufferedImage`类来处理图像。为了等比例缩放图片,我们需要获取原始图片的宽高比,然后根据目标尺寸计算出新的宽高。关键代码可能如下: ```java BufferedImage source =...

    java 图像编程实例库

    本资源包“Java图像编程实例库”提供了一系列的示例代码,旨在帮助开发者理解和应用Java中的图像处理技术。以下将详细介绍其中可能涵盖的知识点。 1. **Java AWT 和 Swing**: 这两个是Java GUI的主要框架,提供了...

    java图片翻转

    在Java编程语言中,图片...这个小程序展示了如何利用Java的`BufferedImage`类进行基本的图像处理操作,对于学习Java图像处理是一个很好的起点。通过深入理解这些概念,你可以进一步开发更复杂的图像处理算法或应用。

Global site tag (gtag.js) - Google Analytics