Java 验证码 字体怎么扭曲

发布网友

我来回答

4个回答

热心网友

题主肯定已经知道解决方式了, 我这里还是写一下一个可行的方法, 方便之后其他人检索.

使用

Graphics.copyArea(int x,int y,int width,int height, int dx, int dy)

这个方法

用处是将x, y 这个位置上的像素点, 复制到x, y 基础上偏移了dx, dy 后的这个位置上.

手头没有代码, 大概讲一下我自己实现过的思路

图像的宽高 width, height. 偏移量 d, 当前的行/列 index

遍历高度(纵轴)上的每一行像素, 每一行的像素都横向偏移d.

g.copyArea(0, index, width, 1, d, 0);

当然, 之后要拿背景色填充这一行偏移后首尾的空缺

g.drawLine(d, index, 0, index);
g.drawLine(d + width, index, width, index);

然后宽度方向上的遍历也同理

g.copyArea(index, 0, 1, height, 0, d);
g.setColor(背景色);
g.drawLine(index, d, index, 0);
g.drawLine(index, d + height, index, height);

当你的偏移量d 是固定的值的时候, 这样的效果只是平移.

但是, 如果每行每列偏移量是一个随机值, 或者根据你自己的一个公式计算出来的一个值, 那么, 就出现扭曲的效果了.


以上.

热心网友

旋转即可

Graphics2D.rotate(旋转弧度);

热心网友

旋转即可

Graphics2D.rotate(旋转弧度);追问能否给小弟一个简单的例子。

热心网友

这个需要美工提供图片吧

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com