java实现动态图片效果

本文实例为大家分享了java实现动态图片效果,供大家参考,具体内容如下

源码

package forGame;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

//动态效果
public class Demo_1 extends JFrame{
 //背景
 private BufferedImage bufferedImage;
 //窗体大小
 private int width;
 private int height;
 //要绘制的动态照片数组
 private BufferedImage[] images = new BufferedImage[4];
 //要绘制动态图中的那张
 private BufferedImage image;

 //初始化
 {
  if(bufferedImage == null){
   try {
    bufferedImage = ImageIO.read(new File("src\\image\\背景.png"));
    for(int i = 1;i < images.length + 1;i ++)
     images[i - 1] = ImageIO.read(new File("src\\image\\大飞机爆炸" + i + ".png"));
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
  width = bufferedImage.getWidth();
  height = bufferedImage.getHeight();
  image = images[0];
 }

 public Demo_1(){
  super("动态测试");
  //设置窗口
  setSize(width,height);
  setLocationRelativeTo(null);
  setResizable(false);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setVisible(true);
  //启动线程
  MyThread myThread = new MyThread();
  myThread.start();
 }

 //双缓冲绘制解决图片闪烁问题
 @Override
 public void paint(Graphics g) {
  Image image = this.createImage(width,height);
  Graphics gImage = image.getGraphics();
  gImage.setColor(gImage.getColor());
  gImage.fillRect(0,0,width,height);
  super.paint(gImage);

  //绘制背景
  gImage.drawImage(bufferedImage,0 ,0 ,null );
  //绘制动态图片
  gImage.drawImage(this.image,0 ,100 ,null );

  //最后绘制缓冲后的图片
  g.drawImage(image,0 ,0 , null);
 }

 private int num = 0;//images数组内图片索引
 //线程内部类
 private class MyThread extends Thread{
  @Override
  public void run() {
   while(true) {
    if(num <= 3) {
     image = images[num ++];
    }
    else
     num = 0;
    repaint();
    try {
     sleep(100);//每隔100毫秒重绘一次
    } catch (InterruptedException e) {
     e.printStackTrace();
    }
   }
  }
 }

 public static void main(String[] args) {
  new Demo_1();
 }
}

效果图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java web实现动态图片验证码的示例代码

    验证码 防止恶意表单注册 生成验证码图片 定义宽高 int width = 100; int height = 50; 使用BufferedImage再内存中生成图片 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 绘制背景和边框 Graphics g = image.getGraphics(); g.setColor(Color.WHITE); g.fillRect(0, 0

  • java实现gif动画效果(java显示动态图片)

    就是每隔一定的时间显示一张图片,全部图片文件位于:"工作空间\项目名称\bin\动态图\花好月圆\"文件夹下.文件名类似:1001.jpg,1002.jpg,一直到1016.jpg: 复制代码 代码如下: /* * Donttai.java * * Created on __DATE__, __TIME__ */ package 动态图; import java.awt.Graphics;import java.awt.Image;import java.awt.image.Image

  • java实现动态图片效果

    本文实例为大家分享了java实现动态图片效果,供大家参考,具体内容如下 源码 package forGame; import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; //动态效果 public class Demo_1 extends JF

  • Java实现动态日历效果

    本文实例为大家分享了Java实现动态日历效果的具体代码,供大家参考,具体内容如下 题目:动态日历 输入年份,月份,显示当前月份日历布局 分析 实现日历的基本思想为:确定一个基准日期,计算从基准日期到指定年份月份的前一个月的总天数,计算这个总天数的前提为判断指定年份是否是闰年(闰年是可以被400整除或者可以被4整除但不被100整除的年份),利用总天数除以7的余数可以确定当前月份前面的空格数,要想简单的使此余数为空格数,则基准日期必须为1月1日并且是星期一,大部分日历的基准日期为1900年1月1日,

  • jQuery动态背景图片效果实现方法

    本文实例讲述了jQuery动态背景图片效果实现方法.分享给大家供大家参考.具体如下: 这里把背景图片按照1.jpg - 20.jpg放到目录里,jQuery会随机调用这些图片作为背景 $(document).ready(function(){ bgImageTotal=20; randomNumber = Math.round(Math.random()*(bgImageTotal-1))+1; imgPath=('/my/image/path/'+randomNumber+'.jpg'); $

  • jquery实现鼠标滑过后动态图片提示效果实例

    本文实例讲述了jquery实现鼠标滑过后动态图片提示效果.分享给大家供大家参考.具体如下: 这里jquery实现的鼠标悬停图片提示效果,把鼠标放在图片上的时候,图片向右上角滑动并缩小,同时提示显示出来,类似幻灯片一样的效果,推荐给大家学习借鉴. 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <head> <title>jQuery图片动态信息显示幻灯效果</title> <style> .galleryContainer {

  • Android 高仿微信朋友圈动态支持双击手势放大并滑动查看图片效果

    最近参与了开发一款旅行APP,其中包含实时聊天和动态评论功能,终于耗时几个月几个伙伴完成了,今天就小结一下至于实时聊天功能如果用户不多的情况可以scoket实现,如果用户万级就可以采用开源的smack + opnefile实现,也可以用mina开源+XMMP,至于怎么搭建和实现,估计目前github上一搜一大把,至于即时通讯怕误人子弟,暂且不做介绍,现就把实现的一个微信朋友圈的小功能介绍一下. 先上效果图: 一拿到主流的UI需求,大致分析下,需要我ListView嵌套Gridview,而grid

  • Java实现动态获取图片验证码的示例代码

    本文介绍了Java实现动态获取图片验证码的示例代码,分享给大家,具体如下: import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingEx

  • Java swing 图像处理多种效果实现教程

    项目记录: 1.图像原理 通常图像都是2D,对一副图像,可以看做其宽w*高h的一个二维数组, 即 图像=int[w][h],在w和h位置的每一个 int 值,就是这个点的像素值. 图像处理的本质是:对代表图像二维数组中的值进行重新计算. 2.思路: 将一张图片转化成一个int型癿二维数组 对于每一个像素点大小和颜色进行计算达到图像处理的效果. 在画笔中设置好颜色,填充形状然后将新的图片画出. 3.实现效果 获取像素点方法,首先利用文件imageIO读取图片,然后根据图片长宽进行遍历得到每个像素点

  • java原生动态生成验证码

    本文实例为大家分享了java原生动态生成验证码的具体代码,供大家参考,具体内容如下 需求描述: 为了防止脚本多次请求,很多时候在注册会用到验证码,我们用java实现 一个图片验证的二维码. 项目结构 只有 标记的这三个文件是用到的 CheckServlet核心代码 package lhw.wanlin.checkimg; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servle

  • java后端合成图片的实现示例

    目录 场景 环境 搭建 引入pom文件 定义核心接口ImageService 定义核心接口实现类ImageServiceImpl 测试ImageController 测试效果 总结 场景 前端有一个神器——canvas,这个画布标签可以处理各种图片的合成,可以精确到图片的具体坐标,加水印,去水印,简直不要太简单!那java后端可以处理吗?请大声的告诉他,能,必须能!今天小编告诉你一个神器——image-combiner,合成图片so easy! 环境 jdk1.8 spring boot 搭建

随机推荐