admin
2019-04-22 08e5c64ec7424fd0048d85ef293148977f4739cb
fanli/src/main/java/com/yeshi/fanli/util/ImageUtil.java
@@ -27,11 +27,12 @@
import javax.imageio.ImageIO;
import org.yeshi.utils.HttpUtil;
import com.yeshi.fanli.entity.bus.activity.RecommendActivityTaoBaoGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import org.yeshi.utils.HttpUtil;
public class ImageUtil {
@@ -445,7 +446,7 @@
         font = font.deriveFont(50.0f);
         g2d.setFont(font);
         g2d.setColor(new Color(229, 0, 93));
//         g2d.drawString("返利券提醒您", 312, 1118 + 40);
         // g2d.drawString("返利券提醒您", 312, 1118 + 40);
         g2d.setColor(new Color(102, 102, 102));
         g2d.drawString("长按识别二维码领取优惠券", 312, 1118 + 77);
@@ -471,7 +472,7 @@
      return null;
   }
   /**
    * 绘制大的商品动态分享图
    * 
@@ -526,7 +527,7 @@
      }
      g2d.setFont(font);
      try {
//         g2d.setColor(new Color(153, 153, 153));
         // g2d.setColor(new Color(153, 153, 153));
         // 画第一张
         for (int i = 0; i < goodsList.size(); i++) {
            TaoBaoGoodsBrief goods = goodsList.get(i);
@@ -555,14 +556,14 @@
               g2d.drawString("¥", 70, 650);
               boldFont = boldFont.deriveFont(42.0f);
               g2d.setFont(boldFont);
               g2d.drawString(couplePrice+"", 90, 650);
               g2d.drawString(couplePrice + "", 90, 650);
               // 画原价
               g2d.setColor(new Color(102, 102, 102));
               font = font.deriveFont(24.0f);
               g2d.setFont(font);
               String zkPrice = new BigDecimal((couplePrice+"").replace("¥", "")).add(goods.getCouponAmount())
               String zkPrice = new BigDecimal((couplePrice + "").replace("¥", "")).add(goods.getCouponAmount())
                     .toString();
               g2d.drawString("¥ " + zkPrice, 70, 650 + 33);
@@ -574,12 +575,12 @@
               String quanString = "";
               BigDecimal withNoZera = MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount());
               if (!withNoZera.toString().endsWith("0")) {
                  // 画券右侧
                  BufferedImage quanRight = ImageIO
                        .read(ImageUtil.class.getClassLoader().getResourceAsStream("image/fanli_quan_right.png"));
                  BufferedImage quanRight = ImageIO.read(
                        ImageUtil.class.getClassLoader().getResourceAsStream("image/fanli_quan_right.png"));
                  quanRight = zoomInImage(quanRight, 12, 60);
                  g2d.setColor(new Color(241, 66, 66));
                  g2d.drawImage(quanRight, topX + 630 - quanRight.getWidth(), topY + 630 - quanRight.getHeight(),
@@ -603,8 +604,8 @@
                        topY + 630 + 42 - quanRight.getHeight());
                  // 画券左侧
                  BufferedImage quanLeft = ImageIO
                        .read(ImageUtil.class.getClassLoader().getResourceAsStream("image/fanli_quan_left.png"));
                  BufferedImage quanLeft = ImageIO.read(
                        ImageUtil.class.getClassLoader().getResourceAsStream("image/fanli_quan_left.png"));
                  quanLeft = zoomInImage(quanLeft, 12, 60);
                  g2d.drawImage(quanLeft, topX + 630 - quanRight.getWidth() - textLength - quanLeft.getWidth(),
                        topY + 630 - quanRight.getHeight(), null);
@@ -646,12 +647,12 @@
               String quanString = "";
               BigDecimal withNoZera = MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount());
               if (!withNoZera.toString().endsWith("0")) {
                  // 画券右侧
                  BufferedImage quanRight = ImageIO
                        .read(ImageUtil.class.getClassLoader().getResourceAsStream("image/fanli_quan_right.png"));
                  BufferedImage quanRight = ImageIO.read(
                        ImageUtil.class.getClassLoader().getResourceAsStream("image/fanli_quan_right.png"));
                  quanRight = zoomInImage(quanRight, 8, 40);
                  g2d.setColor(new Color(241, 66, 66));
                  g2d.drawImage(quanRight, topX + 315 - quanRight.getWidth(), topY + 315 - quanRight.getHeight(),
@@ -659,9 +660,9 @@
                  // 画券的内容
                  g2d.setColor(new Color(229, 0, 93));
                  quanString = " " + withNoZera + "元券 ";
                  font = font.deriveFont(24.0f);
                  g2d.setFont(font);
                  FontMetrics fm = g2d.getFontMetrics(font);
@@ -677,13 +678,13 @@
                        topY + 315 + 28 - quanRight.getHeight());
                  // 画券左侧
                  BufferedImage quanLeft = ImageIO
                        .read(ImageUtil.class.getClassLoader().getResourceAsStream("image/fanli_quan_left.png"));
                  BufferedImage quanLeft = ImageIO.read(
                        ImageUtil.class.getClassLoader().getResourceAsStream("image/fanli_quan_left.png"));
                  quanLeft = zoomInImage(quanLeft, 8, 40);
                  g2d.drawImage(quanLeft, topX + 315 - quanRight.getWidth() - textLength - quanLeft.getWidth(),
                        topY + 315 - quanRight.getHeight(), null);
               }
            }
         }
@@ -700,7 +701,11 @@
         // 画头像
         if (portrait != null) {
            BufferedImage portraitImg = ImageIO.read(portrait);
            // 放缩大小
            portraitImg = zoomInImage(portraitImg, 40, 40);
            // 圆角
            portraitImg = roundImage(portraitImg, 10);
            g2d.drawImage(portraitImg, 70 + (qrcodeImage.getWidth() - portraitImg.getWidth()) / 2,
                  1092 + (qrcodeImage.getHeight() - portraitImg.getHeight()) / 2, null);
         }
@@ -708,37 +713,28 @@
         font = font.deriveFont(50.0f);
         g2d.setFont(font);
         g2d.setColor(new Color(229, 0, 93));
//         g2d.drawString("返利券提醒您", 312, 1118 + 40);
         // g2d.drawString("返利券提醒您", 312, 1118 + 40);
         g2d.setColor(new Color(102, 102, 102));
         g2d.drawString("长按识别二维码免费领券", 312, 1142);
         g2d.drawString("长按识别二维码免费领券", 312, 1150);
         g2d.setColor(new Color(102, 102, 102));
         g2d.drawString("共", 1000, 1142);
         g2d.drawString("共", 1000, 1150);
         g2d.setColor(new Color(229, 0, 93));
         g2d.drawString(goodsList.size()+"", 1055, 1142);
         g2d.drawString(goodsList.size() + "", 1055, 1150);
         g2d.setColor(new Color(102, 102, 102));
         g2d.drawString("个商品", 1090, 1142);
         g2d.drawString("个商品", 1090, 1150);
         // 提示语
         BufferedImage tips = ImageIO
               .read(ImageUtil.class.getClassLoader().getResourceAsStream("image/share/tips1.png"));
         tips = zoomInImage(tips,850, 65);
         //g2d.setColor(new Color(255, 250, 250));
         g2d.drawImage(tips, 312,1180, null);
         tips = zoomInImage(tips, 850, 65);
         g2d.drawImage(tips, 312, 1190, null);
         g2d.dispose();
         // OutputStream out = new ByteArrayOutputStream(); new
         // FileOutputStream(new File(targetPath));
         // ImageIO.write(targetImg, "JPEG", out);
         // out.flush();
         // out.close();
         ByteArrayOutputStream aos = new ByteArrayOutputStream();
         ImageIO.write(targetImg, "JPEG", aos);
         InputStream is = new ByteArrayInputStream(aos.toByteArray());
@@ -753,7 +749,6 @@
      return null;
   }
   // 画商品分享图
   public static InputStream drawGoodsShareImgHCJ(InputStream qrcodeStream, InputStream portrait,
@@ -996,8 +991,8 @@
   // 邀请好友图片
   public static void inviteFriendImg(InputStream urlInputStream, InputStream portraitInputStream,
         InputStream erCodeInputStream, String targetPath) throws IOException {
      inviteFriendImg(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, 260, 908, 230);
         InputStream erCodeInputStream, String targetPath,String inviteCode) throws IOException {
      inviteFriendImg(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, 260, 908, 230, inviteCode);
   }
   /**
@@ -1012,11 +1007,14 @@
    *            -二维码的纵坐标
    * @param size
    *            -二维码的尺寸
    * @param inviteCode
    *            -邀请码
    * @throws IOException
    */
   // 邀请好友图片
   public static void inviteFriendImg(InputStream urlInputStream, InputStream portraitInputStream,
         InputStream erCodeInputStream, String targetPath, int pX, int pY, int size) throws IOException {
         InputStream erCodeInputStream, String targetPath, int pX, int pY, int size, String inviteCode)
         throws IOException {
      BufferedImage bgImage = ImageIO.read(urlInputStream);
      final BufferedImage targetImg = new BufferedImage(bgImage.getWidth(), bgImage.getHeight(),
            BufferedImage.TYPE_INT_RGB);
@@ -1042,6 +1040,37 @@
      int pPY = pY + size / 2 - portraitSize / 2;
      portraitImg = ImageUtil.portraitImg(g2d, portraitImg, pPX, pPY, portraitSize, portraitSize);// 头像长宽
      // 画邀请码(邀请码的大小与字体固定)
      if (!StringUtil.isNullOrEmpty(inviteCode)) {
         String st = "邀请码:" + inviteCode;
         int width = bgImage.getWidth();
         String os = System.getProperty("os.name");
         String fontBoldPath = "/usr/share/fonts/PingFang_Medium.ttf";
         if (os.toLowerCase().startsWith("win")) {
            fontBoldPath = "D:/PingFang_Medium.ttf";
         }
         Font boldFont = null;
         try {
            boldFont = Font.createFont(Font.PLAIN, new File(fontBoldPath)).deriveFont(36.0f);
         } catch (FontFormatException e) {
            e.printStackTrace();
         }
         g2d.setFont(boldFont);
         g2d.setColor(new Color(0, 0, 0));
         FontMetrics fm = g2d.getFontMetrics(boldFont);
         int textLength = fm.stringWidth(st);
         int ax = (width - textLength) / 2;
         int ay = bgImage.getHeight() - 92 + boldFont.getSize() / 2 - 5;
         g2d.setColor(new Color(0, 0, 0));
         g2d.drawString(st, ax, ay);
      }
      OutputStream out = new FileOutputStream(new File(targetPath));
      ImageIO.write(targetImg, "JPEG", out);
      out.flush();