java 雪花特效_java实现图片飘雪花的特效
一)制作要点
1.多线程的使用
2.类java.util.Random的使用
(二)嵌入Applet的HTML页面源代码
SnowPic
注意:上面的图片中java的类名为SnowPic 注意大小写,以及图片的名称Bridge.jpg 和大小1024*768
java源代码
import java.applet.Applet;
import java.awt.*;
import java.util.Random;
public class SnowPic extends Applet implements Runnable
{
Thread mainThread;
Image offScreen,gAlc[];
Random rand;
int stopFlag,snows,wind,threadSleep,snowSize;
int[] snowX,snowY;
long stopTime =0;
Dimension dim;
MediaTracker mt;
public SnowPic(){}
int getParameter(String s1,int s2)
{
String s=getParameter(s1);
return(s !=null)?Integer.parseInt(s):s2;
}
int getParameter(String s1,int s2,int max,int min)
{
String s=getParameter(s1);
if(s!=null)
{
if((s2=Integer.parseInt(s))>max) return max;
else if (s2
else return s2;
}else return s2;
}
String getParameter(String s1 , String s2)
{
String s= getParameter(s1);
return (s!=null)?s:s2;
}
public void init()
{
rand =new Random();
dim =getSize();
offScreen=createImage(dim.width,dim.height);
snows =getParameter("snows",100,500,0);
snowSize =getParameter("snowSize",3,10,3);
threadSleep =getParameter("threadSleep",80,1000,10);
snowX= new int [snows];
snowY = new int [snows];
for( int i=0;i
{
snowX=rand.nextInt()%(dim.width/2)+dim.width/2;
snowY=rand.nextInt()%(dim.height/2)+dim.height/2;
}
mt =new MediaTracker(this);
gAlc= new Image[1];
gAlc[0]=getImage(getDocumentBase(),getParameter("graphic","test.gif"));
mt.addImage(gAlc[0],0);
try
{
mt.waitForID(0);
}
catch(InterruptedException ex) {return;}
stopFlag =0;
}
public void start()
{
if (mainThread==null)
{
mainThread=new Thread(this);
mainThread.start();
}
}
public void stop()
{
mainThread =null;
}
public void run()
{
while(mainThread !=null)
{
try
{
Thread.sleep(threadSleep);
}
catch(InterruptedException ex) {return;}
repaint();
}
}
public void drawBackSnow(Graphics g)
{
g.setColor(Color.white);
for(int i=0;i
{
g.fillOval(snowX,snowY,snowSize,snowSize);
snowX+=rand.nextInt()%2+wind;
snowY+=(rand.nextInt()%6+5)/5+1;
if(snowX>=dim.width) snowX=0;
if(snowX<0) snowX=dim.width -1;
if(snowY>=dim.height ||snowY<0)
{
snowX =Math.abs(rand.nextInt()%dim.width);
snowY =0;
}
}
wind =rand.nextInt()%5 -2;
}
public void paint(Graphics g)
{
offScreen.getGraphics().setColor(Color.black);
offScreen.getGraphics().fillRect(0,0,dim.width,dim.height);
offScreen.getGraphics().drawImage(gAlc[0],0,0,this);
drawBackSnow(offScreen.getGraphics());
g.drawImage(offScreen,0,0,null);
}
public void update(Graphics g)
{
paint(g);
}
}
注意保存为SnowPic.java
java 雪花特效_java实现图片飘雪花的特效相关推荐
- java幻灯片效果_java中怎么实现幻灯片切换特效?详细实例展示
在java的使用过程中,我们会发现它的功能真的很强大,完成内容也极其丰富.今天就给大家介绍一下如何在java中实现幻灯片切换特效,以及通过实际的代码来为大家展示. 在最开始,需要说明的是,这个代码是实 ...
- java thumbnails 中心点_java Thumbnails 图片处理的使用
在后端开发的过程中,都逃不开与文件传输特别是图片的传输打交道,但是因为现在各种拍照设备发展越来越快,拍出的照片更是越来越清晰,但是照片文件的大小也是越来越大了,手机拍照小则2M大则30M这在网络传输过 ...
- java盒图_java合成图片
package com.pbids.sanqin.util; import javax.imageio.ImageIO; import java.awt.*; import java.awt.imag ...
- java 水印 位置_Java实现图片加水印且控制位置和透明度
Java实现图片加水印且控制位置和透明度 昨天要做一个给图片加水印的功能,不想使用一些插件,就在网上转了一会儿,经过改装成了我需要的功能,代码如下: package org.guhao; import ...
- 【pr+ae模板插件预设】79组冬天下雪飘雪花结冰特效合成mg动画
79组冬天下雪飘雪 [素材介绍] 分辨率: 3840×2160 4K 文件大小:10.1 GB (压缩包大小) 素材数量:79 素材格式:.MP4 视频编码:H.264 视频帧数: 23.976 FP ...
- java照片拍摄时间_java读取图片的(尺寸、拍摄日期、标记)等EXIF信息
主要代码如下: package com.test; import java.io.File; import java.io.IOException; import java.util.Iterator ...
- java thumbnails 内存_Java修改图片尺寸,总是报内存溢出怎么解决?
项目需求:有很多尺寸很大的图片(图片大小可能几十MB,甚至上百MB),需要等比例缩小它们的尺寸,相当于生成缩略图. 例如:原图8268x6201,需要压缩成400x300. 我现在的方法:将图片整个读 ...
- java image 透明_Java实现图片透明效果
Java实现图片透明效果,从演示截图可看到,上层图片与下层图片互相重叠,也就是上层图片透明了,看到了下层以的图片,具体的代码实现: public class HalfTransparentImageD ...
- java颜色识别_java读取图片对应坐标的颜色值
public class ImageRead { int width=0; int height=0; int[][] ImageArray; StringBuffer sb = new String ...
最新文章
- Fundamental Research:根系分泌物通过调控土壤微生物影响碳周转的机理
- 在VM6.5正式版中安装ESX Server 3.5的办法
- golang odbc mysql_golang使用odbc链接hive
- 细说C#多线程那些事 - 线程同步和多线程优先级
- Android 使用内置的Camera应用程序捕获图像
- Libra教程之:Libra testnet使用指南
- 禅道之需求追踪和多角色协作流程
- linux 配置思科路由器,将配置文件导入cisco2611路由器步骤
- 大数据在各个行业中的应用_三维设计广泛应用各个行业
- 河北四部门联合打击虚开骗税违法行为
- Adapter中notify(),notifyAll(),notifyDataSetChanged(),notifyDataSetInvalidaded()方法的区别
- 大数据工程师简历_大数据工程师简历3份
- Java工程师成神之路(2018修订版)
- 小程序谷歌统计 Google Analytics
- 图论-生成树-黑暗城堡
- kettle8.3-win安装操作指南
- 我的第一篇论文诞生的故事
- c语言函数定义时涉及的基本要素是什么,C语言基础:函数的定义与调用
- JQuery实现图片点击放大
- Java程序突然死掉的原因
热门文章
- 图片怎么等比缩放_mac图像缩放工具Teorex iResizer
- java stop和int,JAVA并发任务中止的isinterrupted,interupted()
- python识别12306验证码_Python3.4实现的12306最新验证码识别
- Facets:评估机器学习数据集质量利器 (来自Google、可交互、可可视化)
- 命犯编程!因为名字特殊,她被苹果封了 6 个月
- 记一次 Python Web 接口优化
- 说说每月至少一次的那点事,文末有彩蛋!
- 如何看待 2020 届校招算法岗「爆炸」的情况?英雄所见略同
- eclipse和idea代码通用吗_python能在苹果手机上运行吗
- 版是什么版本的教材_acca教材有哪些版本