验证码字体


-
生成验证码时,当设置的字体服务器上没有,生成的验证码会乱码,此为终极解决方案,永不担心字体不存在而导致验证码乱码问题
7.93MB
有字体的验证码
2017-10-29//实现混合验证码(数字+字母) for($i=0;$i<4;$i++){//i验证码数 $fontsize=6;//字体大小 rand()-随机产生数 $fontcolor=imagecoloral
3.64MB
漂亮的php验证码,包含支持多字体,字母验证码,数字验证码
2012-06-13漂亮的php验证码,包含支持多字体,字母验证码,数字验证码,经过改进的支持多字体的php验证码,很清爽的感觉,也很大气,适合做商业网站开发插件,同时过滤了几个容易混淆的数字与字母。
9.50MB
几款可用于验证码的字体(可商业用途)
2018-09-12以下字体确认可以免费用于商业用途 都是由站酷开发的(里面的英文字体 可以用来做验证码) 如果只要英文字体 可以使用三方软件提取 https://www.zcool.com.cn/special/zco
21KB
验证码字体库
2012-12-11验证码字体库
4.52MB
php验证码 9款好看的验证码
2012-07-13本人需要做验证码功能,特收集了9款php版本的验证码!大家也可以下载直接运行看看效果 无需修改代码
验证码改字体大小和大小写_course
2011-06-20protected void Page_Load(object sender, EventArgs e) { string str = new string; string serverCode =
65KB
显示ttf字体的验证码
2010-06-05参考别人写的验证码,使用ttf字体。 包括文件: ImgFontByte.java ValidateCode.java 测试类ValidateCodeTest.java servlet:Validat
怎么可以让图片验证码里面每一张的每个字母的字体和颜色随机啊_course
2016-09-29import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Arrays; import java.util.Random; import javax.imageio.ImageIO; public class Picture{ //系统字符源 public static final String VA_CODES="acdefghjkmnprstuwx3457ACEFGHJKLMNQRSTUVWX"; private static Random random = new Random(); public static String generateVerifyCode(int verifySize){ return generateVerifyCode(verifySize, VA_CODES); } //自定义的字符源 public static String generateVerifyCode(int verifySize, String sources){ if(sources == null || sources.length() == 0){ sources = VA_CODES; } //无自定义字符源 int codesLen = sources.length(); Random rand = new Random(System.currentTimeMillis()); StringBuilder verifyCode = new StringBuilder(verifySize); for(int i = 0; i < verifySize; i++){ verifyCode.append(sources.charAt(rand.nextInt(codesLen-1))); } return verifyCode.toString(); } public static String outputVerifyImage(int wi, int he, File outputFile, int verifySize) throws IOException{ String verifyCode = generateVerifyCode(verifySize); outputImage(wi, he, outputFile, verifyCode); return verifyCode; } public static String outputVerifyImage(int wi, int he, OutputStream os, int verifySize) throws IOException{ String verifyCode = generateVerifyCode(verifySize); outputImage(wi, he, os, verifyCode); return verifyCode; } public static void outputImage(int wi, int he, File outputFile, String code) throws IOException{ if(outputFile == null){ return; } File dir = outputFile.getParentFile(); if(!dir.exists()){ dir.mkdirs(); } try{ outputFile.createNewFile(); FileOutputStream fos = new FileOutputStream(outputFile); outputImage(wi, he, fos, code); fos.close(); } catch(IOException e){ throw e; } } public static void outputImage(int wi, int he, OutputStream os, String code) throws IOException{ int verifySize = code.length(); BufferedImage image = new BufferedImage(wi, he, BufferedImage.TYPE_INT_RGB); Random rand = new Random(); Graphics2D g2 = image.createGraphics(); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); Color[] colors = new Color[5]; Color[] colorSpaces = new Color[] { Color.WHITE, Color.CYAN, Color.GRAY, Color.LIGHT_GRAY, Color.MAGENTA, Color.ORANGE, Color.PINK, Color.YELLOW }; float[] fractions = new float[colors.length]; for(int i = 0; i < colors.length; i++){ colors[i] = colorSpaces[rand.nextInt(colorSpaces.length)]; fractions[i] = rand.nextFloat(); } Arrays.sort(fractions); g2.setColor(Color.GRAY);// g2.fillRect(0, 0, wi, he); Color c = getRandColor(200, 250); Font f =getRandomFont(); char[] charts = code.toCharArray(); for(int i=0;i<charts.length;i++){ g2.setColor(c);// g2.setFont(f); g2.fillRect(0, 2, wi, he-4); } //干扰线 Random random = new Random(); g2.setColor(getRandColor(160, 200)); for (int i = 0; i < 20; i++) { int x = random.nextInt(wi - 1); int y = random.nextInt(he - 1); int xl = random.nextInt(6) + 1; int yl = random.nextInt(12) + 1; g2.drawLine(x, y, x + xl + 40, y + yl + 20); } // 噪点 float yawpRate = 0.05f;// 噪声率 int area = (int) (yawpRate * wi * he); for (int i = 0; i < area; i++) { int x = random.nextInt(wi); int y = random.nextInt(he); int rgb = getRandomIntColor(); image.setRGB(x, y, rgb); } shear(g2, wi, he, c, f);// 扭曲图片 g2.setColor(getRandColor(100, 160)); int fontSize = he-4; Font font = getRandomFont(); g2.setFont(font); char[] chars = code.toCharArray(); for(int i = 0; i < verifySize; i++){ AffineTransform affine = new AffineTransform(); affine.setToRotation(Math.PI / 4 * rand.nextDouble() * (rand.nextBoolean() ? 1 : -1), (wi / verifySize) * i + fontSize/2, he/2); g2.setTransform(affine); g2.drawChars(chars, i, 1, ((wi-10) / verifySize) * i + 5, he/2 + fontSize/2 - 10); } g2.dispose(); ImageIO.write(image, "jpg", os); } private static Color getRandColor(int fc, int bc) { if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); } private static int getRandomIntColor() { int[] rgb = getRandomRgb(); int color = 0; for (int c : rgb) { color = color << 8; color = color | c; } return color; } private static int[] getRandomRgb() { int[] rgb = new int[3]; for (int i = 0; i < 3; i++) { rgb[i] = random.nextInt(255); } return rgb; } private static Font getRandomFont() { String[] fonts = {"Gill sans", "Agency FB", "Consolas", "Comic Sans MS", "Time News Roman", "Courier New", "Arial Black", "Quantzite"}; int fontIndex = (int)Math.round(Math.random() * (fonts.length - 1)); int fontSize = (int) Math.round(Math.random() * 4 + 16); return new Font(fonts[fontIndex], Font.PLAIN, fontSize); } private static void shear(Graphics g, int w1, int h1, Color color,Font font) { shearX(g, w1, h1, color,font); shearY(g, w1, h1, color,font); } private static void shearX(Graphics g, int w1, int h1, Color color,Font font) { int period = random.nextInt(2); boolean borderGap = true; int frames = 1; int phase = random.nextInt(2); for (int i = 0; i < h1; i++) { double d = (double) (period >> 1) * Math.sin((double) i / (double) period + (6.2831853071795862D * (double) phase) / (double) frames); g.copyArea(0, i, w1, 1, (int) d, 0); if (borderGap) { g.setFont(font); g.setColor(color); g.drawLine((int) d, i, 0, i); g.drawLine((int) d + w1, i, w1, i); } } } private static void shearY(Graphics g, int w1, int h1, Color color,Font font) { int period = random.nextInt(40) + 10; // 50; boolean borderGap = true; int frames = 20; int phase = 7; for (int i = 0; i < w1; i++) { double d = (double) (period >> 1) * Math.sin((double) i / (double) period + (6.2831853071795862D * (double) phase) / (double) frames); g.copyArea(i, 0, 1, h1, 0, (int) d); if (borderGap) { g.setFont(font); g.setColor(color); g.drawLine(i, (int) d, i, 0); g.drawLine(i, (int) d + h1, i, h1); } } } public static void main(String[] args) throws IOException{ File diy = new File("E:/521"); int w = 200, h = 80; for(int i = 0; i < 50; i++){ String verifyCode = generateVerifyCode(4); File file = new File(diy, verifyCode + ".jpg"); outputImage(w, h, file, verifyCode); } } } 这是我现在的。。求大神帮看看
C语言入门--必须基础17讲
2017-07-28适合没有基础的人群学习C语言,简单的入门教程。帮助小白理解什么是开发,什么是编程。做的很简单,很多细节没有详细讲解,不适合用来深入研究。学了这个,你能理解什么是编程,什么是C语言。
5.8MB
2020美赛C题题目.rar
2020-03-06Problem C: 电商里的数据财富 在电商市场中,亚马逊为消费者提供了对购买商品的评价(打分和评论)的服务。个人评级,又称为“星级评级”,意思是允许消费者使用1(低分差评,低满意度)到5(高分好评
89KB
html制作的登录界面
2011-05-12html制作的登录界面html制作的登录界面html制作的登录界面html制作的登录界面html制作的登录界面html制作的登录界面html制作的登录界面html制作的登录界面
Java系列技术之JavaWeb入门
2018-09-18JavaWeb里的基础核心技术
793.88MB
7套JavaWeb毕业设计+教程
2020-10-157套JavaWeb毕业设计+教程,包括:1.源代码;2数据库;3.模块解析;4.视频教程;5.项目截图
-
博客
ESP8266EX芯片文档
ESP8266EX芯片文档
-
学院
【数据分析-随到随学】Python数据获取
【数据分析-随到随学】Python数据获取
-
下载
ELK日志系统所需安装包版本6.6.0
ELK日志系统所需安装包版本6.6.0
-
博客
华为 matebook D 加装硬盘过程注意事项
华为 matebook D 加装硬盘过程注意事项
-
下载
VisualSFM_windows_64bit
VisualSFM_windows_64bit
-
下载
微服微服微服务.rar
微服微服微服务.rar
-
博客
sigslot 库的用法
sigslot 库的用法
-
学院
商业的本质——杰克·韦尔奇著
商业的本质——杰克·韦尔奇著
-
学院
Python入门到项目直通车
Python入门到项目直通车
-
博客
Hadoop3.2.1 【 YARN 】源码分析 : ApplicationMasterLauncher
Hadoop3.2.1 【 YARN 】源码分析 : ApplicationMasterLauncher
-
博客
vscode配置c++可能遇到的俩问题(头文件找不到和找不到编译的文件)
vscode配置c++可能遇到的俩问题(头文件找不到和找不到编译的文件)
-
学院
微信小程序之颜值测试项目(测颜值)【项目实战】
微信小程序之颜值测试项目(测颜值)【项目实战】
-
学院
【数据分析-随到随学】Mysql数据库
【数据分析-随到随学】Mysql数据库
-
博客
MySQL 之深入解析一条 SQL 的执行流程
MySQL 之深入解析一条 SQL 的执行流程
-
博客
Python高级语法(第十讲)
Python高级语法(第十讲)
-
学院
SQL Server 2016 高可用灾备技术合集
SQL Server 2016 高可用灾备技术合集
-
博客
Java 八大基本数据类型的默认值 及其 相关初始化问题分析
Java 八大基本数据类型的默认值 及其 相关初始化问题分析
-
博客
css中如何使颜色透明度
css中如何使颜色透明度
-
学院
转行做IT-第5章 流程控制语句
转行做IT-第5章 流程控制语句
-
学院
手势解锁-canvas-javascript实战
手势解锁-canvas-javascript实战
-
下载
mirrors-llvm-project-release-11.x.zip
mirrors-llvm-project-release-11.x.zip
-
博客
HTML标签中自定义data属性的使用
HTML标签中自定义data属性的使用
-
下载
64位+spacedesk_driver_Win_10_64_v0914_BETA
64位+spacedesk_driver_Win_10_64_v0914_BETA
-
学院
单片机完全学习课程全五季套餐
单片机完全学习课程全五季套餐
-
下载
java绩效管理系统.rar
java绩效管理系统.rar
-
博客
ORA-38706&ORA-38707报错解决办法
ORA-38706&ORA-38707报错解决办法
-
博客
02 Java面向对象—第4节 面向对象高级~数组增删查案例(动态扩容)
02 Java面向对象—第4节 面向对象高级~数组增删查案例(动态扩容)
-
博客
动态规划(二)——刷题 + 优化
动态规划(二)——刷题 + 优化
-
下载
struts2+jQuery+json实现AJAX.zip
struts2+jQuery+json实现AJAX.zip
-
博客
Anaconda和Pycharm的安装及pycharm配置anaconda
Anaconda和Pycharm的安装及pycharm配置anaconda