热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

java  实现输出随机图片实例代码

这篇文章主要介绍了java实现输出随机图片实例代码的相关资料,需要的朋友可以参考下

java  实现输出随机图片实例代码

输出随机图片(CAPTCHA图像):Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的测试)

相关主要类(JDK 查看API)

BufferedImage:内存图像
Graphics:画笔
ImageIO:输出图像

放在html页面上

注意:浏览器默认会缓存图片

   public static int WIDTH = 120; 
public static int HEIGHT = 25; 
 
public void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
 
  response.setContentType("text/html"); 
  //创建内存图像 
  BufferedImage image = new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB); 
  //勾勒图像 
  Graphics graphics = image.getGraphics(); 
  //设置背景 
  graphics.setColor(Color.WHITE); 
  graphics.fillRect(0, 0, WIDTH, HEIGHT); 
  //设置边框 
  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); 
  } 
  //写随机数 
  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");//设置响应格式 
  ImageIO.write(image, "jpeg", response.getOutputStream()); 
   
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


推荐阅读
  • 本文详细探讨了在编程中如何高效处理日期和时间,包括常见的日期时间格式转换、时区问题及其实现方法。 ... [详细]
  • 本文详细介绍了如何在ReactJS项目中集成Onsen-UI的ActionSheetButton组件,并通过具体示例展示了其使用方法及效果。 ... [详细]
  • 本文详细介绍了线性素数筛选法和欧拉线性筛算法,并提供了详细的代码实现及数学证明,帮助读者深入理解这两种高效的算法。 ... [详细]
  • 本文介绍了一种有效的方法来防止Windows 7系统中批处理(.bat)文件执行后立即关闭的问题。通过在特定文件夹中使用命令行窗口手动调用批处理文件,可以确保其输出内容得以保留,便于查看和调试。 ... [详细]
  • StoredProcedure “存储过程名” 的TextHeader 中存在语法错误
    修改存储过程的时候出现StoredProcedure“存储过程名”的TextHeader中存在语法错误出现这样的问题的解决方法(本人修改已成功)在创建存 ... [详细]
  • 使用IntelliJ IDEA高效开发与运行Shell脚本
    本文介绍了如何利用IntelliJ IDEA中的BashSupport插件来增强Shell脚本的开发体验,包括插件的安装、配置以及脚本的运行方法。 ... [详细]
  • 本文介绍了基于Java的在线办公工作流系统的毕业设计方案,涵盖了MyBatis框架的应用、源代码分析、调试与部署流程、数据库设计以及相关论文撰写指导。 ... [详细]
  • 一键LNMP配置SSL证书实现全站HTTPS访问
    许多网站搭建者选择了便捷的一键LNMP安装包,但在网站部署完成后,配置SSL证书以支持HTTPS访问是一个不可或缺的步骤。本文将详细介绍如何通过简单的步骤完成这一过程。 ... [详细]
  • 华为云openEuler环境下的Web应用部署实践
    本文详细记录了在华为云openEuler系统上进行Web应用部署的具体步骤,包括配置yum源、安装Apache、MariaDB、PHP及其相关组件,并完成WordPress的安装与配置过程。 ... [详细]
  • 本文深入探讨了领域驱动设计(DDD)中的聚合概念及其在事件溯源架构中的应用。聚合是一组紧密相关的类,这些类作为一个整体运作,形成一个有明确边界的组织。只有通过聚合根才能与聚合内的对象进行交互。 ... [详细]
  • APP及其接口测试全面解析
    本文深入探讨了移动应用(APP)及其接口测试的关键点,包括安装与卸载、功能一致性、系统兼容性、权限管理等多个方面的测试策略,以及针对接口的功能、边界值、参数组合等专业测试方法。同时,介绍了几款常用的测试工具,帮助开发者提高测试效率和质量。 ... [详细]
  • 本文详细介绍了如何处理Oracle数据库中的ORA-00227错误,即控制文件中检测到损坏块的问题,并提供了具体的解决方案。 ... [详细]
  • Kubernetes 实践指南:初次体验
    本文介绍了如何通过官方提供的简易示例,快速上手 Kubernetes (K8S),并深入理解其核心概念和操作流程。 ... [详细]
  • 深入解析Nacos服务自动注册机制
    本文将探讨Nacos服务自动注册的具体实现方法,特别是如何通过Spring事件机制完成服务注册。通过对Nacos源码的详细分析,帮助读者理解其背后的原理。 ... [详细]
  • SpringBoot底层注解用法及原理
    2.1、组件添加1、Configuration基本使用Full模式与Lite模式示例最佳实战配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组 ... [详细]
author-avatar
卖女孩的小方子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有