java制作gif代码 gif,制作

java有没有什么办法让按钮里显示gif

完全可以,程序如下,这里把图片和程序放在一块,不放在一起的话。

昌宁ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

代码Icon icon=new ImageIcon("1.gif");//要给出图片的完整的路径。

图片资源:

import java.awt.*;

import javax.swing.*;

public class JFrameTest extends JFrame{

/**

* @param args

*/

private static final long serialVersionUID=1L;

JFrameTest(String name){

super(name);

this.setSize(200, 200);//设置窗口大小。

this.setBackground(Color.DARK_GRAY);//设置背景颜色。

this.setLayout(new FlowLayout());//设置顺序布局。

Container con=this.getContentPane();//获取容器。

//设置按钮,为按钮添加图片。

Icon icon=new ImageIcon("1.gif");//根据路径取出图片。

JButton button=new JButton("带图片的按钮",icon);

con.add(button);//添加按钮。

this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);//设置默认的关闭方式。

}

public static void main(String[] args) {

JFrameTest test=new JFrameTest("按钮");

  test.setVisible(true);

}

}

运行结果:

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动态验证码 就是百度注册用户的那种

你好,

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");//设置相应类型,告诉浏览器输出的内容为图片

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);

}

}

生成图片的类:

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;

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(fc  255)

fc = 255;

if(bc  255)

bc = 255;

int r = fc + random.nextInt(bc-fc-16);

int g = fc + random.nextInt(bc-fc-14);

int b = fc + random.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制作gif代码 gif,制作
地址分享:http://hbruida.cn/article/hpejgp.html