yujian
2019-12-18 89cc8f054c27f70fcfe16f14554a8a12e0c19e23
fanli/src/main/java/com/yeshi/fanli/util/ImageUtil.java
@@ -1,5 +1,6 @@
package com.yeshi.fanli.util;
import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
@@ -33,6 +34,7 @@
import org.yeshi.utils.entity.DateInfo;
import com.yeshi.fanli.entity.bus.activity.RecommendActivityTaoBaoGoods;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@@ -199,7 +201,6 @@
         font = font.deriveFont(30.0f);
         g2d.setFont(font);
         g2d.setColor(new Color(229, 0, 93));
         // g2d.drawString("返利券提醒您", 250 + 17, 1080 + 17);
         g2d.setColor(new Color(102, 102, 102));
         g2d.drawString("长按识别二维码领取优惠券", 250 + 17, 1130 + 17);
@@ -449,7 +450,6 @@
         font = font.deriveFont(50.0f);
         g2d.setFont(font);
         g2d.setColor(new Color(229, 0, 93));
         // g2d.drawString("返利券提醒您", 312, 1118 + 40);
         g2d.setColor(new Color(102, 102, 102));
         g2d.drawString("长按识别二维码领取优惠券", 312, 1118 + 77);
@@ -716,7 +716,6 @@
         font = font.deriveFont(50.0f);
         g2d.setFont(font);
         g2d.setColor(new Color(229, 0, 93));
         // g2d.drawString("返利券提醒您", 312, 1118 + 40);
         g2d.setColor(new Color(102, 102, 102));
         g2d.drawString("长按识别二维码免费领券", 312, 1150);
@@ -763,7 +762,7 @@
    * @return
    */
   public static InputStream drawGoodsSharePicture(InputStream qrcodeStream, InputStream portrait,
         List<TaoBaoGoodsBrief> goodsList) {
         List<CommonGoods> goodsList) {
      String fontPath = "/usr/share/fonts/PingFang_Medium.ttf";
      String os = System.getProperty("os.name");
@@ -807,12 +806,13 @@
      
      
      try {
         boolean index = true;
         // 画第一张
         for (int i = 0; i < goodsList.size(); i++) {
            TaoBaoGoodsBrief goods = goodsList.get(i);
            BigDecimal couplePrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
            CommonGoods goods = goodsList.get(i);
            BigDecimal couplePrice = CommonGoodsUtil.getAfterUseCouplePrice(goods);
            // 第一张图需要有价格信息
            if (i == 0) {
            if (i == 0 || index) {
               int topX = 50;
               int topY = 50;
               
@@ -820,7 +820,10 @@
               // 画大图 起始点坐标为(50,50)
               int widht = 650;
               int height = 650;
               InputStream goodsPicture = TaoBaoHttpUtil.getAsInputStream(goods.getPictUrl().replace("_.webp", "").replace("_220x220", ""));
               InputStream goodsPicture = TaoBaoHttpUtil.getAsInputStream(goods.getPicture().replace("_.webp", "").replace("_220x220", ""));
               if (goodsPicture == null)
                  continue;
               BufferedImage picImage = ImageIO.read(goodsPicture);
               picImage = ImageUtil.zoomInImage(picImage, widht, height);
               g2d.drawImage(picImage, topX, topX, null);
@@ -887,6 +890,8 @@
                  g2d.drawString("¥ " + withNoZera + "", quanBGWidht + 70, quanBGHeight + 48);
               }
               index = false;
            } else {
               // 计算左上角坐标
               int topX = 0;
@@ -908,8 +913,10 @@
                  topY = 50 + (315 + 20) * 2;
               // 画大图
               InputStream goodsPicture = TaoBaoHttpUtil
                     .getAsInputStream(goods.getPictUrl().replace("_.webp", ""));
               InputStream goodsPicture = TaoBaoHttpUtil.getAsInputStream(goods.getPicture().replace("_.webp", ""));
               if (goodsPicture == null)
                  continue;
               BufferedImage picImage = ImageIO.read(goodsPicture);
               picImage = ImageUtil.zoomInImage(picImage, 315, 315);
               g2d.drawImage(picImage, topX, topY, null);
@@ -1521,6 +1528,21 @@
      
      // 画邀请码(邀请码的大小与字体固定)
      if (!StringUtil.isNullOrEmpty(inviteCode)) {
         int ax = pX - (inviteCode.length() - 4)*13 ;
         int ay = pY + size +  118;
         int width_diap = 235 + (int) (24.6 * (inviteCode.length() - 4));
         g2d.setColor(Color.white);
           // 画出一个矩形
         g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.65f));  // 透明度
           g2d.fillRect(ax, ay - 38, width_diap, 50);
           // 前半圆
            g2d.fillArc(ax - 25, ay- 38, 50, 50, 90, 180);
            // 后半圆
            g2d.fillArc(ax + width_diap - 25, ay- 38, 50, 50, 270, 180);
           g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 1f));
         String st = "邀请码:" + inviteCode;
         String os = System.getProperty("os.name");
         String fontBoldPath = "/usr/share/fonts/PingFang_Medium.ttf";
@@ -1534,17 +1556,12 @@
         } catch (FontFormatException e) {
            e.printStackTrace();
         }
         g2d.setFont(boldFont);
         g2d.getFontMetrics(boldFont);
         g2d.setColor(new Color(0, 0, 0));
         
         int ax = pX - 30;
         int ay = pY + size +  118;
         g2d.setColor(new Color(0, 0, 0));
         g2d.drawString(st, ax, ay);
      }
      OutputStream out = new FileOutputStream(new File(targetPath));