生成个人签名矩形(长方形/正方形)印章

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

生成个人签名矩形(长方形/正方形)印章

前言

主要作用于电子签章生成的个人签名后续更新企业印章,本章主要生成个人印章

一、基于Rectangle2D 生成个人印章,Rectangle2D 介绍

Rectangle2D是Java中的一个抽象类,它是用于表示矩形的基类。它提供了一些方法和属性,用于描述和操作矩形的位置、大小和边界。

Rectangle2D类有两个具体的子类:Rectangle2D.Double和Rectangle2D.Float。这两个子类分别表示双精度和单精度浮点数的矩形。

Rectangle2D类提供了一些常用的方法,例如getX()和getY()用于获取矩形的左上角的坐标,getWidth()和getHeight()用于获取矩形的宽度和高度,contains()用于判断一个点是否在矩形内部,intersects()用于判断两个矩形是否相交等等。

通过使用Rectangle2D类,你可以方便地进行矩形的计算和操作

二、生成个人印章工具类

public class SealPictureUtil {
   

    /**
     * 长方形字体最大,大小
     */
    public static int RECTANGLE_FONT_MAX_SIZE = 80;

    /**
     * 长方形字体最小,大小
     */
    public static int RECTANGLE_FONT_MAIN_SIZE = 5;

    /**
     * 获取个人签名印章图片
     *
     * @param model
     * @return
     * @throws IOException
     */
    public static String createPersonSignSealPicture(PersonSignSealPictureModel model) throws IOException {
   
        // 创建一个透明背景的图片
        BufferedImage image = new BufferedImage(model.getWidth(), model.getHeight(), BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = image.createGraphics();
        // 长方形做自适应,正方形写死
        int fontSize;
        if (model.getIsVerticalRow()) {
   
            fontSize = model.getFontSize();
        } else {
   
            fontSize = RECTANGLE_FONT_MAX_SIZE;
            // 自适应文字大小
            while (fontSize >= RECTANGLE_FONT_MAIN_SIZE) {
   
                Font font = new Font(model.getFontName(), model.getFontStyle(), fontSize);
                FontRenderContext frc = g2d.getFontRenderContext();
                Rectangle2D bounds = font.getStringBounds(model.getName(), frc);
                int textWidth = (int) bounds.getWidth();
                int textHeight = (int) bounds.getHeight();
                if (model.getBorderWidth() > 0) {
   
                    if (textWidth + 2 * model.getBorderWidth() <= model.getWidth() && textHeight + 2 * model.getBorderWidth() <= model.getHeight()) {
   
                        break;
                    }
                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值