NPE_ 2021-09-09 10:36 采纳率: 77.4%
浏览 15
已结题

使用 Graphics2D 进行图片合成 第一遍合成出来的是空白,必须再读一遍这个合成出来空白的图片才能加上logo


 
 //拿到二维码
        BufferedImage twodimensioncode  = ImageIO.read(new File("C:/Users/HY/Desktop/newPic12312312.jpg"));
 
        //绘制
        Graphics2D g = twodimensioncode.createGraphics();
        //读取logo
        BufferedImage logo = ImageIO.read(new File("C:/Users/HY/Desktop/a1231.png"));
        //设置二维码大小,太大,会覆盖二维码,此处20%
        int logoWidth = logo.getWidth(null) > twodimensioncode.getWidth()*3 /10 ? (twodimensioncode.getWidth()*3 /10) : logo.getWidth(null);
        int logoHeight = logo.getHeight(null) > twodimensioncode.getHeight()*3 /10 ? (twodimensioncode.getHeight()*3 /10) : logo.getHeight(null);
        // 确定二维码的中心位置坐标,设置logo图片放置的位置
        int x = (twodimensioncode.getWidth() - logoWidth) / 2;
        int y = (twodimensioncode.getHeight() - logoHeight) / 2;
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                RenderingHints.VALUE_INTERPOLATION_BILINEAR);
 
        //开始合并绘制图片
        g.drawImage(logo, x, y, logoWidth, logoHeight, null);
        g.drawRoundRect(x, y, logoWidth, logoHeight, 15 ,15);
 
        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
 
        g.dispose();
        logo.flush();
        twodimensioncode.flush();
        ImageIO.write(twodimensioncode, "jpeg", new File("C:/Users/HY/Desktop/newPic12312312.jpg"));
        System.out.println("创建成功");

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月17日
    • 创建了问题 9月9日

    悬赏问题

    • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
    • ¥20 关于web前端如何播放二次加密m3u8视频的问题
    • ¥20 spring boot集成mqtt的使用问题
    • ¥15 使用百度地图api 位置函数报错?
    • ¥15 metamask如何添加TRON自定义网络
    • ¥66 关于川崎机器人调速问题
    • ¥15 winFrom界面无法打开
    • ¥30 crossover21 ARM64版本安装软件问题
    • ¥15 mymetaobjecthandler没有进入
    • ¥15 mmo能不能做客户端怪物