日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BufferedImage 将照片logo添加到二维码中间

發布時間:2024/1/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BufferedImage 将照片logo添加到二维码中间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.

/*** 將照片logo添加到二維碼中間** @param image 生成的二維碼照片對象* @param imagePath 照片保存路徑* @param logoPath logo照片路徑* @param formate 照片格式*/public static void overlapImage(BufferedImage image,String formate,String imagePath,String logoPath,MatrixToLogoImageConfig logoConfig) {try {BufferedImage logo = ImageIO.read(new File(logoPath));Graphics2D g = image.createGraphics();// 考慮到logo照片貼到二維碼中,建議大小不要超過二維碼的1/5;int width = image.getWidth() / logoConfig.getLogoPart();int height = image.getHeight() / logoConfig.getLogoPart();// logo起始位置,此目的是為logo居中顯示int x = (image.getWidth() - width) / 2;int y = (image.getHeight() - height) / 2;// 繪制圖g.drawImage(logo, x, y, width, height, null);// 給logo畫邊框// 構造一個具有指定線條寬度以及 cap 和 join 風格的默認值的實心 BasicStrokeg.setStroke(new BasicStroke(logoConfig.getBorder()));g.setColor(logoConfig.getBorderColor());g.drawRect(x, y, width, height);g.dispose();// 寫入logo照片到二維碼ImageIO.write(image, formate, new File(imagePath));} catch (Exception e) {e.printStackTrace();}}
  • /*** 插入LOGO** @param source 二維碼圖片* @param imgPath LOGO圖片地址* @param needCompress 是否壓縮* @throws Exception*/private static void insertImage(BufferedImage source, String imgPath, boolean needCompress)throws Exception {File file = new File(imgPath);if (!file.exists()) {System.err.println("" + imgPath + " 該文件不存在!");return;}Image src = ImageIO.read(new File(imgPath));int width = src.getWidth(null);int height = src.getHeight(null);if (needCompress) { // 壓縮LOGOif (width > WIDTH) {width = WIDTH;}if (height > HEIGHT) {height = HEIGHT;}Image image = src.getScaledInstance(width, height, Image.SCALE_SMOOTH);BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);Graphics g = tag.getGraphics();g.drawImage(image, 0, 0, null); // 繪制縮小后的圖g.dispose();src = image;}// 插入LOGOGraphics2D graph = source.createGraphics();int x = (QRCODE_WIDTH - width) / 2;int y = (QRCODE_HEIGHT - height) / 2;graph.drawImage(src, x, y, width, height, null);Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6);graph.setStroke(new BasicStroke(3f));graph.draw(shape);graph.dispose();}

    總結

    以上是生活随笔為你收集整理的BufferedImage 将照片logo添加到二维码中间的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。