效果图如下:
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.CubicCurve2D;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
public class ComponentToImage extends Canvas {
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
int w = getWidth();
int h = getHeight();
g2.setPaint(getBackground());
g2.fillRect(0,0,w,h);
g2.setPaint(Color.red);
g2.draw(new CubicCurve2D.Double(w/4, h*3/4, -w*3/8, -h/4,
w*11/8, -h/4, w*3/4, h*3/4));
}
private BufferedImage makeImage() {
int w = getWidth();
int h = getHeight();
int type = BufferedImage.TYPE_INT_RGB;
BufferedImage image = new BufferedImage(w,h,type);
Graphics2D g2 = image.createGraphics();
paint(g2);
g2.dispose();
return image;
}
private void save(BufferedImage image) {
String ext = "jpg"; // png, bmp (j2se 1.5+), gif (j2se 1.6+)
File file = new File("componentToImage." + ext);
try {
ImageIO.write(image, ext, file);
} catch(IOException e) {
System.out.println("write error: " + e.getMessage());
}
}
private void saveToFile() {
new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(1000);
} catch(InterruptedException e) {
System.out.println("interrupted");
}
save(makeImage());
}
}).start();
}
public static void main(String[] args) {
ComponentToImage test = new ComponentToImage();
Frame f = new Frame();
f.addWindowListener(closer);
f.add(test);
f.setSize(400,400);
f.setLocation(200,200);
f.setVisible(true);
test.saveToFile();
}
private static WindowListener closer = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
}
- 大小: 12.5 KB
分享到:
相关推荐
以下是一个简单的Applet类,用于截取指定区域的屏幕并保存为图片: ```java import java.awt.*; import java.awt.image.BufferedImage; import javax.swing.JApplet; import java.io.File; import java.io....
在这个图片浏览小程序中,Java可能用于实现图片的加载、显示、缩放等核心功能,同时也可能涉及到文件I/O操作,用于读取和保存用户的浏览记录或者图片信息。 **Java Applet技术:** Applet是Java的一种特殊类型的...
网页截图工具是网络浏览中非常实用的功能,它允许用户快速捕获并保存当前网页的图像。在本案例中,我们讨论的是一款基于Java Applet技术实现的网页截图工具。Java Applet是一种小型的Java程序,可以在用户的Web...
同时,`wx.downloadFile()`可用于下载远程图片并保存到本地,以便在海报上使用。 在实际开发中,海报工具类通常会封装这些操作,提供一个简单的API供其他组件或页面调用。例如,可能有一个`createPoster()`函数,...
Applet是一种小型Java程序,可以在Web浏览器中运行。本文将通过一个简单的指法练习游戏实例,详细介绍如何使用JBuilder 2005开发Applet应用,涉及的知识点广泛,包括图形用户界面设计、动画处理、声音播放、事件处理...
6. **文件读写**:游戏关卡信息可能保存在外部文件中,需要用到文件I/O操作来读取和存储关卡数据。 7. **异常处理**:在程序中加入适当的异常处理,可以提高程序的健壮性,避免因错误操作导致程序崩溃。 通过研究...
在这个项目中,龟和兔的图片可能会作为`Image`对象加载,并通过`Graphics`的`drawImage()`方法在Applet的画布上绘制。 为了实现动画效果,程序会定期调用`repaint()`方法来重绘组件,每次重绘时根据时间或计数器...
在这个案例中,我们讨论的是一个使用Java Applet技术构建的网页计算器。Java Applet是早期Java技术的一种,它允许开发者创建可以在浏览器中运行的小型Java程序。 Java Applet的工作原理是:当用户访问包含Applet的...
8. 图像IO:Java的`javax.imageio`包提供了读取和写入图像文件的功能,使得在程序中加载和保存图像变得简单。 总的来说,Java为图形显示提供了强大的支持,无论是简单的用户界面还是复杂的动画效果,都能通过AWT和...
在JSP项目中集成Web截屏控件,需要将相关的JavaScript库或Java Applet文件引入到页面中,然后通过JSP的脚本元素或自定义标签调用相关功能。对于复杂的项目,可能还需要考虑如何与后端服务器进行通信,例如使用Ajax...
不过,随着现代浏览器逐渐移除对Java Applet的支持,这种技术在新环境下可能面临兼容性问题,因此开发者可能需要考虑将其转换为更现代的Web技术,如JavaScript或HTML5 Canvas。 Eclipse是一个广泛使用的Java集成...
1. **服务器端生成图表并以图片形式返回**:在服务器端使用JFreeChart生成图表,然后将其保存为图片文件(如JPEG或PNG),通过HTTP响应返回给客户端浏览器。 2. **使用Java Applet**:虽然Java Applet现在已经不...
保存Java源文件时,确保文件扩展名为`.java`,并在保存对话框中选择“所有文件(*.*)”作为文件类型,这是创建有效Java源文件的关键步骤。 #### 2. Java参数传递方式 Java中的参数传递遵循“按值传递”原则。这意味...
8. **文件I/O**:游戏可能保存玩家进度或读取配置信息,因此源码中可能包含文件读写操作。 通过分析和学习这个源码,开发者不仅可以巩固Java基础知识,还能深入了解游戏开发的流程和技术,提升自己的编程技能。对于...
在拍照程序中,canvas用于捕获来自摄像头的实时视频流,并可以进一步处理或保存为图片。 4. MediaStream Recording API:这个API允许开发者录制来自getUserMedia的MediaStream。在拍照程序中,我们可以使用它来捕获...
在J2ME中,MIDlet是手机应用程序的基本单元,类似于Java SE中的Application或Applet。一个MIDlet通常由一个主类和若干辅助类组成,负责应用程序的生命周期管理。在"手机游戏五子棋"中,MIDlet类可能是整个游戏的入口...
在描述中提到的“控件截屏返回bease64图片数据”,指的是截取的图片数据以Base64编码形式进行传输。 Base64是一种用于将二进制数据转换为ASCII字符串的编码方式,以便在不支持二进制传输的环境中(如电子邮件)发送...
- HTML5 Canvas:Canvas提供了在网页中绘制图形的能力,这部分内容会介绍Canvas的API和使用方法。 - HTML5 Web存储:Web Storage和Web SQL数据库为网页应用提供了数据存储的能力,这部分会讲述如何使用这些存储...
前者用于持久化存储,数据不会因为浏览器关闭而丢失,适合保存长期数据;后者仅限于当前会话,当浏览器窗口关闭,存储的数据也会被删除,适用于临时性的会话数据存储。 6. **HTML5新增的表单元素**: HTML5扩展了...
描述中提到的“html5开发”,表明这个项目专注于HTML5技术,HTML5是现代Web开发的标准,它的新特性包括语义化标签、离线存储、多媒体支持(如音频、视频)、Canvas绘图、SVG矢量图、Geolocation定位等。这些特性使得...