Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-cloud-account
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.account
pica-cloud-account
提交
37468e3b
提交
37468e3b
编写于
8月 09, 2019
作者:
dong.an
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
图形验证码
上级
788c2c41
流水线
#13092
已失败 于阶段
变更
2
流水线
1
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
35 行增加
和
5 行删除
+35
-5
CaptchaContext.java
...d/account/account/server/util/captcha/CaptchaContext.java
+22
-2
CaptchaUtil.java
...loud/account/account/server/util/captcha/CaptchaUtil.java
+13
-3
未找到文件。
server/src/main/java/com/pica/cloud/account/account/server/util/captcha/CaptchaContext.java
浏览文件 @
37468e3b
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
util
.
captcha
;
import
org.apache.commons.io.IOUtils
;
import
java.awt.*
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.Random
;
import
java.util.concurrent.ThreadLocalRandom
;
...
...
@@ -25,13 +29,29 @@ public class CaptchaContext {
public
Font
font
;
static
byte
[][]
fontDatas
=
new
byte
[
4
][];
static
{
try
{
InputStream
fontStream
=
CaptchaGenerator
.
class
.
getClassLoader
().
getResourceAsStream
(
"1.ttf"
);
fontDatas
[
0
]
=
IOUtils
.
toByteArray
(
fontStream
);
fontStream
=
CaptchaGenerator
.
class
.
getClassLoader
().
getResourceAsStream
(
"2.ttf"
);
fontDatas
[
1
]
=
IOUtils
.
toByteArray
(
fontStream
);
fontStream
=
CaptchaGenerator
.
class
.
getClassLoader
().
getResourceAsStream
(
"3.ttf"
);
fontDatas
[
2
]
=
IOUtils
.
toByteArray
(
fontStream
);
fontStream
=
CaptchaGenerator
.
class
.
getClassLoader
().
getResourceAsStream
(
"4.ttf"
);
fontDatas
[
3
]
=
IOUtils
.
toByteArray
(
fontStream
);
}
catch
(
IOException
ex
)
{
}
}
public
CaptchaContext
(
int
width
,
int
height
,
int
fontSize
,
boolean
showGrid
)
throws
FontFormatException
,
IOException
{
this
.
width
=
width
;
this
.
height
=
height
;
this
.
fontSize
=
fontSize
;
this
.
showGrid
=
showGrid
;
String
name
=
"/"
+
(
ThreadLocalRandom
.
current
().
nextInt
(
0
,
fontCount
)
+
1
)
+
".ttf"
;
this
.
font
=
Font
.
createFont
(
Font
.
TRUETYPE_FONT
,
CaptchaGenerator
.
class
.
getResourceAsStream
(
name
));
int
index
=
ThreadLocalRandom
.
current
().
nextInt
(
0
,
fontCount
)
;
this
.
font
=
Font
.
createFont
(
Font
.
TRUETYPE_FONT
,
new
ByteArrayInputStream
(
fontDatas
[
index
]
));
}
public
int
rndGridSize
()
{
...
...
server/src/main/java/com/pica/cloud/account/account/server/util/captcha/CaptchaUtil.java
浏览文件 @
37468e3b
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
util
.
captcha
;
import
org.apache.commons.io.IOUtils
;
import
javax.imageio.ImageIO
;
import
java.awt.*
;
import
java.awt.image.BufferedImage
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.
net.URL
;
import
java.
io.InputStream
;
import
java.util.UUID
;
import
java.util.concurrent.ThreadLocalRandom
;
...
...
@@ -16,6 +18,15 @@ import java.util.concurrent.ThreadLocalRandom;
public
class
CaptchaUtil
{
final
static
int
MAXSIZE
=
UUID
.
randomUUID
().
toString
().
replace
(
"_"
,
""
).
length
();
static
byte
[]
imageData
;
static
{
try
{
InputStream
imageStream
=
CaptchaUtil
.
class
.
getClassLoader
().
getResourceAsStream
(
"1.png"
);
imageData
=
IOUtils
.
toByteArray
(
imageStream
);
}
catch
(
IOException
ex
)
{
}
}
public
static
String
generateUUIDText
(
int
count
)
{
int
pos
=
count
<
MAXSIZE
?
count
:
MAXSIZE
;
...
...
@@ -45,8 +56,7 @@ public class CaptchaUtil {
}
//BufferedImage image = new BufferedImage(ctx.width, ctx.height, BufferedImage.TYPE_INT_RGB);
URL
url
=
CaptchaUtil
.
class
.
getClassLoader
().
getResource
(
"1.png"
);
BufferedImage
image
=
ImageIO
.
read
(
url
);
BufferedImage
image
=
ImageIO
.
read
(
new
ByteArrayInputStream
(
imageData
));
Graphics2D
g2d
=
image
.
createGraphics
();
//g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//g2d.setBackground(Color.WHITE);
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录