`
msn877763580
  • 浏览: 83838 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Java的Image抽象类与BufferedImage实现类

 
阅读更多

代码一串&&执行流程

package cn.sisy.awt;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.image.BufferedImage;

public class DrawByMouse {
	//定义画图区域的大小
	private final int width = 500;
	private final int height = 500;
	
	//设置起始坐标的位置,这个位置标示鼠标尚未进入myCanvas
	private int preX = -1;
	private int preY = -1;
	
	//定义一个BufferedImage对象,并获取image对象的Graphics
	BufferedImage image = new BufferedImage(width, height, 
			BufferedImage.TYPE_INT_RGB);
	Graphics g = image.getGraphics();
	
	private Frame f = new Frame("手绘测试");
	DrawCanvas myCanvas = new DrawCanvas();
	
	//设置画笔默认颜色
	private Color foreColor = new Color(255,0,0);
	
	public void init(){
		g.fillRect(0, 0, width, height);
		myCanvas.setPreferredSize(new Dimension(width,height));
		//监听鼠标移动动作
		myCanvas.addMouseMotionListener(new MouseMotionAdapter() {
			// 实现按下鼠标键并拖动的事件处理器
			public void mouseDragged(MouseEvent e){
				if(preX>0 && preY>0){
					g.setColor(foreColor);
					g.drawLine(preX, preY, e.getX(), e.getY());
				}
				// 将当前鼠标事件点的X、Y座标保存起来
				preX = e.getX();
				preY = e.getY();
				// 重绘drawArea对象
				myCanvas.repaint();
			}
		});
		//实现鼠标松开的事件处理器
		myCanvas.addMouseListener(new MouseAdapter() {
			//实现鼠标松开事件处理
			public void mouseReleased(MouseEvent e) {
				preX = -1;
				preY = -1;
			}
		});
		f.add(myCanvas);
		f.pack();
		f.setVisible(true);
	}
	public static void main(String[] args) {
		new DrawByMouse().init();
	}
	class DrawCanvas extends Canvas{
		public void paint(Graphics g){
			g.drawImage(image,0,0,null);
		}
	}	
}

 

 

  • 大小: 19.3 KB
  • 大小: 22.4 KB
分享到:
评论

相关推荐

    Java Image转BufferedImage

    首先,`java.awt.Image`是一个抽象类,它提供了一种通用的接口来表示图像数据。`Image`对象可以从网络、文件、内存或其他来源获取,但它的方法通常是非同步的,意味着它们可能不会立即返回结果,而是在图像数据可用...

    Java代码实现图片锐化

    2. **BufferedImage**: `java.awt.image`包下的类,提供了一个通用的位图结构,用于处理像素数据。 3. **Graphics2D**: 提供了高级的二维图形和图像渲染功能,是`Graphics`接口的子接口。 4. **ConvolveOp**: 使用...

    java类包的介绍与使用

    `java.awt.image` 包提供了处理图像的类,如 `BufferedImage` 和 `ImageFilter`,支持图像的加载、显示和编辑。 `java.awt.image.renderable` 包用于生成与呈现无关的图像,适用于生成可缩放或适应不同输出设备的...

    java绘图.代码

    此外,`java.awt.image.BufferedImage`和`java.awt.Graphics2D`则支持更高级的图像处理,如图像缩放、旋转和透明效果。 在Java中,绘图不仅可以用于创建静态图形,还可以结合动画和事件处理,实现交互式的图表。...

    通过java socket实现屏幕网络监控

    在Java中,可以使用`java.awt.Robot`类来捕获屏幕快照,`java.awt.image.BufferedImage`用于存储图像数据,`javax.imageio.ImageIO`类则可以用来进行图像的编码和解码。此外,可能还需要使用多线程来处理图像的抓取...

    java图形与图像处理

    - `java.awt.image`包:包含了许多处理图像的类,如`BufferedImage`用于内存中的图像操作,`ImageIO`用于读写图像文件。 - 图像操作主要包括创建、加载和显示。例如,`ImageIO.read()`用于从文件加载图像,`...

    JAVA控制台烟花程序代码

    在控制台烟花程序中,虽然我们不会直接加载图片,但`Image`类的概念可以被借鉴来抽象烟花爆炸的过程。例如,我们可以用一个类表示烟花,该类包含烟花的颜色、位置、大小等属性,以及模拟烟花绽放的方法。 3. **类...

    图片缩放截剪功能_JAVA源码

    `java.awt.Image`类是图像对象的抽象基类,而`javax.imageio.ImageIO`则用于读取、写入和处理图像。下面,我们将详细讲解这两个关键步骤:图片缩放和图片截剪。 **图片缩放** 图片缩放通常涉及到调整图像的宽度和...

    用Java实现打印.docx

    使用java.awt.image包来处理图像信息,可以使用BufferedImage类来处理图像信息。使用Toolkit类来获得图像的信息。 使用java.awt.print包来处理打印信息,可以使用PrinterJob类来获得打印机的信息,可以使用...

    疯狂JAVA讲义

    第1章 Java概述 1 1.1 Java语言的发展简史 2 1.2 Java的竞争对手及各自优势 4 ...11.8.1 Image抽象类和BufferedImage实现类 425 11.8.2 使用ImageIO输入/输出位图 427 11.9 剪贴板 432 11.9.1 数据传递的类...

    飞行射击类游戏完整源码及素材(Java实现)

    在Java中,我们可以使用`java.awt.image.BufferedImage`类来加载和显示图像,而音频则可以通过`javax.sound.sampled`包进行播放。开发者通常会将这些素材组织成类,方便在游戏中调用。 总的来说,这个飞行射击类...

    Java图像文件的缩小与放大.7z

    它是一个抽象类,提供了加载、显示和操作图像的方法。例如,可以使用 `Toolkit.getDefaultToolkit().getImage()` 来加载图像文件。 3. **缩放方法**: - 缩小或放大图像通常通过创建图像的新实例并设置新的尺寸来...

    java 画曲线+图形的保存于打开

    在Java编程语言中,画曲线和图形是一项基本任务,它涉及到图形用户界面(GUI)的开发,特别是使用Java的抽象窗口工具包(AWT)和 Swing 框架。Java 提供了丰富的类库来创建、操作和显示图形,如 `java.awt.Graphics`...

    java编写的图片浏览器源代码

    在Java中,可以使用Java Advanced Imaging (JAI)库或者BufferedImage类的方法来实现图像滤镜效果,如灰度化、锐化、模糊等。在图片浏览器中,可能提供了这些功能让用户对显示的图片进行简单的编辑。 5. **放大和...

    java版赛车小游戏源代码

    4. **图像处理**:赛车和背景图片的加载与显示,可能使用了java.awt.image包中的BufferedImage类。开发者需要了解如何加载外部图像资源,并在画布上绘制。 5. **音频播放**:游戏中的背景音乐播放可能借助了Java ...

    java图像处理

    - **`Image`**:这是一个抽象类,代表了一个图像,通常由子类如`BufferedImage`实现。 - **`BufferedImage`**:这是`Image`的一个具体实现,它包含了一个可直接访问像素数组的内存缓冲区,使得图像处理更为高效。 - ...

    java2D网页版API文档

    8. **GraphicsDevice** 和 **GraphicsConfiguration**:这两个类与系统硬件相关,用于获取和管理显示设备的信息,以及为特定设备选择合适的图形配置。 网页版的API文档通常具有搜索功能,方便用户快速查找所需的...

    BufferedImage使用—-生成一张验证码图片

    BufferedImage 类是 Java 图形处理中的一个重要类,它是 Image 抽象类的实现,主要用于在内存中创建一个带有缓冲区的图像。这个缓冲区使得我们可以高效地对图像进行各种操作,如绘制、缩放、旋转等,而无需频繁地与...

    基于JAVA的 图像处理软件.pdf

    对于图像处理,可能需要用到java.awt.image包中的BufferedImage类,它可以存储和操作像素数据。常见的图像处理操作如灰度转换、旋转、缩放、色彩变换等,都可以通过操作BufferedImage的像素数组来实现。 例如,灰度...

    java图片压缩工具类

    `java.awt.Image` 是Java标准库中表示图像的基本抽象类。`Image`对象可以从文件、URL、流或内存中的位图数据创建。在`ImageProcess`类中,`img`变量就是用来存储从输入流中读取的图像。 2. **ImageIO**: `javax....

Global site tag (gtag.js) - Google Analytics