完全可以,程序如下,這里把圖片和程序放在一塊,不放在一起的話。

昌寧ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信: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);//設(shè)置窗口大小。
this.setBackground(Color.DARK_GRAY);//設(shè)置背景顏色。
this.setLayout(new?FlowLayout());//設(shè)置順序布局。
Container?con=this.getContentPane();//獲取容器。
//設(shè)置按鈕,為按鈕添加圖片。
Icon?icon=new?ImageIcon("1.gif");//根據(jù)路徑取出圖片。
JButton?button=new?JButton("帶圖片的按鈕",icon);
con.add(button);//添加按鈕。
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);//設(shè)置默認(rèn)的關(guān)閉方式。
}
public?static?void?main(String[]?args)?{
JFrameTest?test=new?JFrameTest("按鈕");
? test.setVisible(true);
}
}
運(yùn)行結(jié)果:
實(shí)現(xiàn)思路:無論是何種類型,都是轉(zhuǎn)換為流的形式進(jìn)行的文件傳輸和存儲(chǔ)。
可以通過BufferedReader 流的形式進(jìn)行流緩存,之后通過readLine方法獲取到緩存的內(nèi)容。
BufferedReader bre = null;
OutputStreamWriter pw = null;//定義一個(gè)流
try {
String file = "D:/test/test.GIF";
bre = new BufferedReader(new FileReader(file));//此時(shí)獲取到的bre就是整個(gè)文件的緩存流
pw = new OutputStreamWriter(new FileOutputStream(“D:/New.GIF”),"GBK");//確認(rèn)流的輸出文件和編碼格式,此過程創(chuàng)建了“test.GIF”實(shí)例
while ((str = bre.readLine())!= null) // 判斷最后一行不存在,為空結(jié)束循環(huán)
{
pw.write(str);//將要寫入文件的內(nèi)容,可以多次write
};
bre.close();
pw.close();//關(guān)閉流
備注:文件流用完之后必須及時(shí)通過close方法關(guān)閉,否則會(huì)一直處于打開狀態(tài),直至程序停止,增加系統(tǒng)負(fù)擔(dān)。
你好,
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");//設(shè)置相應(yīng)類型,告訴瀏覽器輸出的內(nèi)容為圖片
response.setHeader("Pragma",?"No-cache");//設(shè)置響應(yīng)頭信息,告訴瀏覽器不要緩存此內(nèi)容
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";//隨機(jī)產(chǎn)生的字符串
private?int?width?=?80;//圖片寬
private?int?height?=?26;//圖片高
private?int?lineSize?=?25;//干擾線數(shù)量
private?int?stringNum?=?4;//隨機(jī)產(chǎn)生字符數(shù)量
/**
*?生成隨機(jī)圖片
*/
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);
}
//繪制隨機(jī)字符
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);
}
/*
*?獲取隨機(jī)的字符
*/
private?String?getRandomString(int?num){
return?String.valueOf(randString.charAt(num));
}
}
網(wǎng)頁名稱:java制作gif代碼 gif,制作
本文鏈接:http://chinadenli.net/article18/hpejgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)、微信小程序、ChatGPT、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)