java动态图片代码 java动态gif效果图

java实现游戏背景图片的动态移动,我想用java做一个小霸王中冒险岛这样的游戏 , 背景移动怎么实现?// 想实现你的方法,用画图是最快的,即在一个组件上直接画上你的背景图
// 建议你看看swing 画图这方面的书籍
// 其它我就不写
class My extends JComponent {
// 记住这个方法不要直接调用 , 如果想让界面更新,请用repaint();交由UI线程来完成
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
BufferedImage image = null;
try {
image = ImageIO.read(new FileInputStream(""));
} catch (Exception e) {
}
// 这里是图片从100,200处开始画
g.drawImage(image, -100, -200, null);
}
}
java中在窗体的创建一个面板中加入一个gif动态图java动态图片代码你是说 JPanel 吗?两种方法java动态图片代码:
添加 JLabel , 给 JLabel 添加 ImageIcon,然后放置 JLabel 到 JPanel 上就行了:
JPanel pnl = new JPanel();
......
JLabel lblImage = new JLabel(new ImageIcon("你java动态图片代码的文件名"));//创建一个带图片的 JLabel
lblImage.setBounds(0, 0, pnl.getWidth(), pnl.getHeight());//设置 图片的横坐标、纵坐标、宽、高
pnl.add(lblImage);//放置这个 JLabel 到你的 JPanel 上面
还有一种方法是重写 JPanel 的 paint() 方法:
class YourPanel extends JPanel {
private Image img = Toolkit.getDefaultToolkit().createImage("你的文件名");//用 Toolkit 的 createImage 方法来创建一个 Image 对象
@Override public void paint (Graphics g) {
super.paint(g);
g.drawImage(img, 0, 0, getWidth(), getHeight());//绘制图片,第一个参数是 Image 对象 , 第二个参数是 横坐标 , 第三个是 纵坐标,第四个是 宽,第五个是 高
}
}
以上你隐式重写也可以:
JPanel pnl = new JPanel() {
@Override public void paint (Graphics g) {
...... //但是要注意这样如果你把 Image 声明成了局部变量或者参数形式,你需要声明成 final
}
}
java 如何生成动态的gif图片实现思路:无论是何种类型 , 都是转换为流的形式进行的文件传输和存储 。
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容 。
BufferedReader bre = null;
OutputStreamWriter pw = null;//定义一个流
try {
String file = "D:/test/test.GIF";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
pw = new OutputStreamWriter(new FileOutputStream(“D:/New.GIF”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.GIF”实例
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
pw.write(str);//将要写入文件的内容,可以多次write
};
bre.close();
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担 。
求一个Java语言编写的gif动态验证码 就是百度注册用户的那种java动态图片代码你好,
Servlet类:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ImageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("image/gif");//设置相应类型,告诉浏览器输出java动态图片代码的内容为图片
response.setHeader("Pragma", "No-cache");//设置响应头信息,告诉浏览器不要缓存此内容
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expire", 0);
RandomValidateCode randomValidateCode = new RandomValidateCode();
try {
randomValidateCode.getRandcode(request, response);//输出图片方法
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
生成图片java动态图片代码的类:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
【java动态图片代码 java动态gif效果图】import javax.servlet.http.HttpSession;
public class RandomValidateCode {
public static final String RANDOMCODEKEY = "RANDOMVALIDATECODEKEY";//放到session中的key
private Random random = new Random();
private String randString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//随机产生的字符串
private int width = 80;//图片宽
private int height = 26;//图片高
private int lineSize = 25;//干扰线数量
private int stringNum = 4;//随机产生字符数量
/**
* 生成随机图片
*/
public void getRandcode(HttpServletRequest request,
HttpServletResponse response) {
HttpSession session = request.getSession();
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
Graphics g = image.getGraphics();
g.fillRect(0, 0, width, height);
g.setFont(new Font("Times New Roman",Font.ROMAN_BASELINE,18));
g.setColor(getRandColor(180, 233));

//绘制干扰线
for(int i=0;i=lineSize;i){
drowLine(g);
}
//绘制随机字符
String randomString = "";
for(int i=1;i=stringNum;i){
randomString=drowString(g,randomString,i);
}
session.removeAttribute(RANDOMCODEKEY);
session.setAttribute(RANDOMCODEKEY, randomString);
g.dispose();
try {
ImageIO.write(image, "JPEG", response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
// ------------- private methods -------------
/*
* 获得字体
*/
private Font getFont(){
return new Font("Fixedsys",Font.CENTER_BASELINE,18);
}
/*
* 获得颜色
*/
private Color getRandColor(int fc,int bc){
if(fc255)
fc = 255;
if(bc255)
bc = 255;
int r = fcrandom.nextInt(bc-fc-16);
int g = fcrandom.nextInt(bc-fc-14);
int b = fcrandom.nextInt(bc-fc-18);
return new Color(r,g,b);
}
/*
* 绘制字符串
*/
private String drowString(Graphics g,String randomString,int i){
g.setFont(getFont());
g.setColor(new Color(random.nextInt(101),random.nextInt(111),random.nextInt(121)));
String rand = String.valueOf(getRandomString(random.nextInt(randString.length())));
randomString=rand;
g.translate(random.nextInt(3), random.nextInt(3));
g.drawString(rand, 13*i, 16);
return randomString;
}
/*
* 绘制干扰线
*/
private void drowLine(Graphics g){
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(13);
int yl = random.nextInt(15);
g.drawLine(x, y, x xl, y yl);
}
/*
* 获取随机的字符
*/
private String getRandomString(int num){
return String.valueOf(randString.charAt(num));
}
}
java动态图片代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java动态gif效果图、java动态图片代码的信息别忘了在本站进行查找喔 。

    推荐阅读