targetelement.innertext获取文字的坐标_java实现 给图片加上文字

badfae43a15b656e9e0f7970cbca5f5f.png

个人写了个网站:http://106.15.198.170:6888/

近期添加了一个功能:将文字添加到图片中。

在生活小助手-->图片添加文字 模块

a9febf59068d4fc071e1632e51d517b7.png

在文字填上你要添加的文字,

然后上传你要处理的图片

点击提交就可以了

ac3f5473bbba13632e7ec866e8119d5d.png

最后点击红色文字部分就可以查看生成的图片

e4f726dfaa56c6d2a8a4bf96e14ab2cf.png
原图

c694b1a1fe5459e7b11371ba1d153c20.png

结果图

代码部分:

将文字添加到图片

/**
/**
     * 获取加入了文字的图片
     * @param multipartFile
     * @param text
     * @param textColor
     * @return
     */
    private ByteArrayOutputStream getPicOutputSteam(MultipartFile multipartFile,String text,String textColor,String fontName){
        InputStream inputStream = null;
        ByteArrayOutputStream outputStream = null;
        try{
            //获取源图片的输入流
            inputStream = multipartFile.getInputStream();
            //获取源图片
            Image img = ImageIO.read(inputStream);
            //获取流中的长宽
            //宽
            int width = ((BufferedImage) img).getWidth();
            //长
            int height = ((BufferedImage) img).getHeight();
            BufferedImage bimage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            //图形,通过操作这个图形最终生成我们的图片
            Graphics2D g = bimage.createGraphics();
            //设置字体颜色
            g.setColor(ColorUtil.getColor(textColor));
            //设置底色
            g.setBackground(Color.white);
            g.drawImage(img, 0, 0, null);
            //字体
            Font font = null;
            //字体大小
            int fontSize = height/10;
            font = new Font(null, Font.BOLD, fontSize);
            //将字体放置到画板中
            g.setFont(font);
            //文字放置在图片的坐标
            int fontX = fontSize;
            int fontY = height - fontSize;
            g.drawString(text, fontX, fontY);
            g.dispose();
            outputStream = new ByteArrayOutputStream();
            //往输出流中写数据
            ImageIO.write(bimage, PicHandlerConstant.PicType.JPEG, outputStream);
        }catch (Exception e){
            log.error("PicAddTextServiceImpl getPicOutputSteam has error ...",e);
            return null;
        }finally {
            //关闭各种资源
            StreamUtil.inputClose(inputStream);
            StreamUtil.outputClose(outputStream);
        }
        return outputStream;
    }

代码如果有不合理的地方请大家支出,让我加深学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值