import java.applet.*;
import java.awt.*;
import java.net.*;
//图片火焰效果
//Download by http://www.codefans.net
public class FirePicApplet extends Applet implements Runnable{
private Image backImage,foreImage; //前景和背景Image对象
private Image image,fireImage; //Applet和绘制火焰的效果的Image对象
private Graphics graphics,fireGraphics; //Applet和绘制火焰的效果的Graphics对象
private Thread thread; //火焰效果的线程
private MediaTracker imageTracker; //装载图片
private int height,width; //Applet的高度,宽度
public void init() {
Dimension dim=getSize(); //得到Applet的尺寸
width = dim.width; //得到宽度值
height = dim.height; //得到高度值
backImage = getImage(getDocumentBase(),"back.jpg"); //得到图片
foreImage = getImage(getDocumentBase(),"image1.gif");
imageTracker = new MediaTracker(this); //实例化MediaTracker对象
imageTracker.addImage(backImage,0); //增加图片到图片装载器
imageTracker.addImage(foreImage,0);
try{
imageTracker.waitForID(0); //装载图片
}
catch(InterruptedException e){}
image = createImage(width,height); //得到Image对象实例
graphics = image.getGraphics(); //得到Graphics对象实例
fireImage=createImage(width*2,height*2);
fireGraphics=fireImage.getGraphics();
}
public void start(){
if(thread == null){
thread = new Thread(this); //实例化线程
thread.start(); //运行线程
}
}
public void run(){
int x= 0, y=0; //绘制火焰效果的X坐标,Y坐标
int tileWidth = backImage.getWidth(this); //背景图片的宽度
int tileHeight= backImage.getHeight(this); //背景图片的高度
while(thread != null) {
x=fireImage.getWidth(this)-width; //得到X坐标,Y坐标值
y=fireImage.getHeight(this)-height;
for(;(x>0)&&(y>0); x--,y--) {
if((x==0)||(y==0)) { //坐标回到零时,重新设置
x=fireImage.getWidth(this)-width;
y=fireImage.getHeight(this)-height;
}
for(int j=0; j < fireImage.getHeight(this); j = j + tileHeight){
for(int i=0; i < fireImage.getWidth(this); i = i + tileWidth){
fireGraphics.drawImage(backImage, i, j, this); //绘制背景图片
}
}
fireGraphics.drawImage(foreImage, x, y,width,height,this); //绘制前景图片
graphics.drawImage(fireImage,-x,-y,this); //绘制火焰效果Image
repaint(); //重绘屏幕
}
}
}
public void update(Graphics g){
paint(g);
}
public void paint(Graphics g){
g.drawImage(image,0,0,this); //绘制Image
}
}
基于Java的绘制图片火焰效果.zip
版权申诉
94 浏览量
2023-06-17
00:39:30
上传
评论
收藏 19KB ZIP 举报
![avatar](https://profile-avatar.csdnimg.cn/f6740e8f05584afa97a4f1a99e16fc63_woaimx_1314.jpg!1)
快乐无限出发
- 粉丝: 1164
- 资源: 7303
最新资源
- C语言编程经典案例900集
- 实现求后缀表达式和对后缀表达式求值.zip
- MyEMS 一款功能强大的开源能源管理系统致力于实现对电水气等能源数据的全面采集分析和报表展示
- 毕设项目:网上图书销售管理系统(ASP+ACCESS+源代码+论文)
- Max30102实战开源资料集:硬件设计、上下位机程序及结构设计一应俱全
- PHP5版本手册chm格式压缩包
- Java微信公众号开发所需JAR包概述: Wx-tools框架JAR包:提供基于微信公众平台API的轻量级开发框架 相关依赖库
- duilib集成的Webkit内核浏览器控件 基于BlaFans的wke内核 提供丰富的浏览功能和稳定性 支持最新的HTML
- linux平台上的一种压力测试工具http-load压缩包
- 系统栏着色管理器:Syst
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)