您的位置 首页 java

java生成经典《有内鬼,终止交易》图片

前言

最近在网上看到有合成《有内鬼,终止交易》的图片,闲来无事自己也玩玩

最终效果图

java生成经典《有内鬼,终止交易》图片

实现原理

用java原生自带的图片工具类将文字和背景图进行合成

素材

java生成经典《有内鬼,终止交易》图片

代码实现

 public static void main(String[] args) throws Exception {

        // 字体文件地址

         Font  font = Font.createFont(Font.TRUETYPE_FONT, new  FileInputStream ("/Users/hans/work_space/java_project/javase/src/asm/img/nokia.ttf"));

//        Font font = new Font(" 微软雅黑 ", Font.PLAIN, 60);

        font = font.deriveFont(Font.BOLD, 60L);

        //水印字体

        String srcImgPath="/Users/hans/work_space/java_project/javase/src/asm/img/nokia.jpg"; //源图片地址

        String tarImgPath="/Users/hans/work_space/java_project/javase/src/asm/img/test_1.jpeg"; //待存储的地址

        String waterMarkContent="有内鬼,终止交易!";  //水印内容

        // 字体颜色

        Color markContentColor = new Color(0, 0, 0);

//        Color color = new Color(255, 255, 255, 128);

        // 读取原图片信息

        File srcImgFile = new File(srcImgPath);//得到文件

        Image srcImg = ImageIO.read(srcImgFile);//文件转化为图片

        int srcImgWidth = srcImg.getWidth(null);//获取图片的宽

        int srcImgHeight = srcImg.getHeight(null);//获取图片的高

        

        

        // 将原图重新绘制

        BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);

         Graphics 2D g = bufImg.createGraphics();

        g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);

        g.setColor(markContentColor); //根据图片的背景设置水印颜色

        g.setFont(font);              //设置字体

        //设置水印的坐标

        int x = 250;

        int y = 400;

        // 字体倾斜角度

         Integer  degree = 10;

        if (null != degree) {

            g.rotate(Math.toRadians(degree), 300, 500);//设置水印旋转

        }

        g.drawString(waterMarkContent, x, y);  //画出水印

        g.dispose();

        // 输出图片

         FileOutputStream  outImgStream = new FileOutputStream(tarImgPath);

        ImageIO.write(bufImg, " jpg ", outImgStream);

        System.out.println("添加水印完成");

        outImgStream.flush();

        outImgStream.close();

    }  

注意事项

– 其中如上的水印xy坐标需要用其他工具计算,这个方法很多,可以用ps这种图片编辑工具,也可以用不断测试法

– 字体样式呢也可以自己去找合适的,目前我找的这个看起来还是有些别扭

– 字体的倾斜角度这个得一点一点的调试,不断修改数据,不断查看效果

– 调试阶段最好将字体的颜色设置为红色这种非常显眼的,否则如果生成的图片没有任何变化可能是字体太小、颜色不明显造成调试时间的浪费

文章来源:智云一二三科技

文章标题:java生成经典《有内鬼,终止交易》图片

文章地址:https://www.zhihuclub.com/187377.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图