验证码的旋转与放缩代码

public void demo2() throws IOException {
int w = 60;
int h = 30;
BufferedImage img = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB );
Graphics g = img.getGraphics();

//背景
g.setColor(Color.WHITE);
g.fillRect(0, 0, w, h);
//字体
g.setFont(new Font("aa", Font.BOLD, 18));
//输出验证码: 4个0~9之间的随机整数
Random r = new Random();
for(int i=0;i<4;i++){
int a = r.nextInt(10);
int y = 10+r.nextInt(20);//上下位置:10~30
Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
g.setColor(c);
g.drawString(""+a, i*16, y);
}
//画干扰线
for(int i=0;i<20;i++){
Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
g.setColor(c);
g.drawLine(r.nextInt(w), r.nextInt(h), r.nextInt(w), r.nextInt(h));
}

//把图形刷到img对象中
g.dispose();//相当于IO中的close()方法带动flush()
ImageIO.write(img, "JPEG", new FileOutputStream("d:/a/hello.jpg"));
}

}

----------------------------------------------------------------

@Test
public void demo3() throws IOException {
int w = 80;
int h = 30;
BufferedImage img = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB );
Graphics g = img.getGraphics();
Graphics2D g2d = ( Graphics2D )g; // ※※※
//字体
g2d.setFont(new Font("aa", Font.BOLD, 18));

//背景
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, w, h);

//输出验证码: 4个0~9之间的随机整数
Random r = new Random();
for(int i=0;i<4;i++){
int a = r.nextInt(10);
int y = 10+r.nextInt(20);//上下位置:10~30
Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
g2d.setColor(c);

//旋转和放缩※※※
AffineTransform tx = new AffineTransform();
tx.rotate(r.nextDouble(), i*16, y-5);
tx.scale(0.6+r.nextDouble(), 0.6+r.nextDouble());
g2d.setTransform(tx);

g2d.drawString(""+a, i*16, y);
}
//画干扰线
for(int i=0;i<10;i++){
Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
g2d.setColor(c);
g2d.drawLine(r.nextInt(w), r.nextInt(h), r.nextInt(w), r.nextInt(h));
}

//把图形刷到img对象中
g2d.dispose();//相当于IO中的close()方法带动flush()
ImageIO.write(img, "JPEG", new FileOutputStream("d:/a/hello.jpg"));
}

}

时间: 2024-11-02 19:01:26

验证码的旋转与放缩代码的相关文章

css控制div元素旋转指定角度代码实例

css控制div元素旋转指定角度代码实例:本章节介绍一下如何利用css3实现控制元素旋转指定角度的效果.在这里咱们就不考虑低版本的浏览器,因为随着时间的推移,低版本的浏览器会被逐渐淘汰,就算是当前,低版本浏览器的用户的占比也是很少了,下面直接看代码实例: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" conten

Qt QGraphicsItem 绕中心旋转、放缩

最近用到了QGraphicsItem,可以通过QGraphicsItemAnimation使其产生动画效果. QGraphicsItemAnimation自带了setPosAt().setRotationAt().setScaleAt()等方法可以用来移动.旋转.放缩QGraphicsItem,但其默认的OriginPoint是这个Item的左上角,虽然QGraphicsItem自带了setTransformOriginPoint()方法,但是设置以后没有效果,还是绕左上角放缩旋转,只好采取其他

DIV旋转的测试代码

<html> <head> <style type="text/css"> .rat0 { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); } .rat1 { -webkit-transform: rotate(20deg); -moz-transform: rotate(20deg); } .rat2 { -webkit-transform: rotate(-20deg)

纯CSS3悬停图标旋转导航动画代码

分享一款纯CSS3悬停图标旋转导航动画代码.这是一款鼠标移到图标上动画旋转显示导航菜单.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="x_contant"> <a class="xzt1" href="#"><img src="images/xztz_1.png" /></a> <a class="xzt2" hr

网易云信,发送验证码短信C#版代码

网易云信发送短信代码(C# 版)....需要注意SHA1 String有转换小写!!!! using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace HaiMou.Common.SMS { public class NeteaseSms

iOS 开发设置空间旋转中心点的代码

//让控件以 [self setAnchorPoint:CGPointMake(0, 0) forView:smallImg];为中心点旋转 //CGPointMake(0, 0)   控件的左上角为中心点 //CGPointMake(1, 1)   控件的右下角为中心点 - (void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)view { CGPoint oldOrigin = view.frame.origin; view.

Android拍照、摄像方向旋转的问题 代码具体解释

近期做了个拍照.摄像的应用.遇到了拍照.摄像的图像相对于现实.翻转了90度.原因:相机这个硬件的角度是横屏的角度,所以会出现都是横屏的. 1.照相.摄影预览图像的正确角度显 示: public static void setCameraDisplayOrientation(Activity activity, int cameraId, android.hardware.Camera camera) { android.hardware.Camera.CameraInfo info = new

拍照、摄像方向旋转的问题 代码详解

最近做了个拍照.摄像的应用.遇到了拍照.摄像的图像相对于现实,翻转了90度.原因:相机这个硬件的角度是横屏的角度,所以会出现都是横屏的. 1.照相.摄影预览图像的正确角度显 示: public static void setCameraDisplayOrientation(Activity activity, int cameraId, android.hardware.Camera camera) { android.hardware.Camera.CameraInfo info = new

旋转和平移 代码2

Point center(face_img.cols/2, face_img.rows/2); //cv::Mat rot_mat = cv::getRotationMatrix2D(center, -1 * arctan, 1.0); cv::Mat Rx(3, 3, CV_32FC1); double theta_r = roll * 3.1415926 / 180; /** 3.1415926 / 180*/ float cos_theta = cos(theta_r); float si