java 實(shí)現(xiàn)輸出隨機(jī)圖片實(shí)例代碼
java 實(shí)現(xiàn)輸出隨機(jī)圖片實(shí)例代碼
輸出隨機(jī)圖片(CAPTCHA圖像):Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自動(dòng)區(qū)分計(jì)算機(jī)和人類的測(cè)試)
相關(guān)主要類(JDK 查看API)
BufferedImage:內(nèi)存圖像
Graphics:畫筆
ImageIO:輸出圖像
放在html頁面上<img src/>
注意:瀏覽器默認(rèn)會(huì)緩存圖片
public static int WIDTH = 120;
public static int HEIGHT = 25;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
//創(chuàng)建內(nèi)存圖像
BufferedImage image = new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);
//勾勒?qǐng)D像
Graphics graphics = image.getGraphics();
//設(shè)置背景
graphics.setColor(Color.WHITE);
graphics.fillRect(0, 0, WIDTH, HEIGHT);
//設(shè)置邊框
graphics.setColor(Color.BLUE);
graphics.drawRect(1, 1, WIDTH-2, HEIGHT-2);
//畫干擾線
graphics.setColor(Color.YELLOW);
for(int i=0;i<8;i++){
int xStart = new Random().nextInt(WIDTH);
int yStart = new Random().nextInt(HEIGHT);
int xEnd = new Random().nextInt(WIDTH);
int yEnd = new Random().nextInt(HEIGHT);
graphics.drawLine(xStart, yStart, xEnd, yEnd);
}
//寫隨機(jī)數(shù)
graphics.setColor(Color.RED);
int x = 5;
for(int i=0;i<4;i++){
graphics.drawString(new Random().nextInt(9)+"", x, 20);
x+=30;
}
response.setContentType("image/jpeg");//設(shè)置響應(yīng)格式
ImageIO.write(image, "jpeg", response.getOutputStream());
}
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Java生產(chǎn)1-100的隨機(jī)數(shù)簡(jiǎn)單實(shí)例(分享)
- java隨機(jī)驗(yàn)證碼生成實(shí)現(xiàn)實(shí)例代碼
- Java生成隨機(jī)數(shù)的方法
- Java 實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能簡(jiǎn)單實(shí)例
- java實(shí)現(xiàn)隨機(jī)輸出300題四則運(yùn)算
- java隨機(jī)生成8位數(shù)授權(quán)碼的實(shí)例
- Java實(shí)現(xiàn)隨機(jī)驗(yàn)證碼具體代碼
- Java中隨機(jī)數(shù)的產(chǎn)生方式與原理詳解
相關(guān)文章
Java?BasePooledObjectFactory?對(duì)象池化技術(shù)的使用
這篇文章主要介紹了Java?BasePooledObjectFactory?對(duì)象池化技術(shù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
詳解Java獲取環(huán)境變量及系統(tǒng)屬性的方法
這篇文章主要介紹了詳解Java獲取環(huán)境變量及系統(tǒng)屬性的方法,講解了System.getEnv()和System.getProperties()這兩個(gè)核心方法的使用,需要的朋友可以參考下2016-05-05
IDEA中實(shí)體類(POJO)與JSON快速互轉(zhuǎn)問題
這篇文章主要介紹了IDEA中實(shí)體類(POJO)與JSON快速互轉(zhuǎn),本文通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
利用?SpringBoot?在?ES?中實(shí)現(xiàn)類似連表查詢功能
這篇文章主要介紹了如何利用?SpringBoot?在?ES?中實(shí)現(xiàn)類似連表的查詢功能,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
SpringBoot+WebMagic實(shí)現(xiàn)網(wǎng)頁爬蟲的示例代碼
本文是對(duì)spring?boot+WebMagic+MyBatis做了整合,使用WebMagic爬取數(shù)據(jù),然后通過MyBatis持久化爬取的數(shù)據(jù)到mysql數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
存儲(chǔ)過程創(chuàng)建及springboot代碼調(diào)用存儲(chǔ)過程方式
文章介紹了如何在Navicat中創(chuàng)建存儲(chǔ)過程,并在Spring Boot項(xiàng)目中調(diào)用存儲(chǔ)過程,存儲(chǔ)過程創(chuàng)建步驟包括選擇函數(shù)類型、自定義函數(shù)名、添加參數(shù)等,在Spring Boot中調(diào)用存儲(chǔ)過程時(shí),可以通過JdbcTemplate或MyBatis等工具進(jìn)行2024-11-11
JAVA利用順序表實(shí)現(xiàn)“楊輝三角”的思路及代碼示例
楊輝三角形是中國(guó)古代數(shù)學(xué)的杰出研究成果之一,是我國(guó)北宋數(shù)學(xué)家賈憲于1050年首先發(fā)現(xiàn)并使用的,這篇文章主要介紹了JAVA利用順序表實(shí)現(xiàn)楊輝三角的思路及代碼示例,需要的朋友可以參考下2025-01-01
Netty中ChannelPoolHandler調(diào)用處理程序詳解
這篇文章主要介紹了Netty中ChannelPoolHandler調(diào)用處理程序詳解,Netty 是基于 Java NIO 的異步事件驅(qū)動(dòng)的網(wǎng)絡(luò)應(yīng)用框架,使用 Netty 可以快速開發(fā)網(wǎng)絡(luò)應(yīng)用,Netty 提供了高層次的抽象來簡(jiǎn)化 TCP 和 UDP 服務(wù)器的編程,但是你仍然可以使用底層的 API,需要的朋友可以參考下2023-11-11
java利用jieba進(jìn)行分詞的實(shí)現(xiàn)
本文主要介紹了在Java中使用jieba-analysis庫(kù)進(jìn)行分詞,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03

