Răsfoiți Sursa

海报优化

shish 2 luni în urmă
părinte
comite
dc7bdd5052
1 a modificat fișierele cu 15 adăugiri și 31 ștergeri
  1. 15 31
      common/components/PosterUtil.php

+ 15 - 31
common/components/PosterUtil.php

@@ -36,7 +36,7 @@ class PosterUtil
 
     const SHOP_LOGO_GAP = 12;
 
-    const SHOP_TITLE_SIZE = 30;
+    const SHOP_TITLE_SIZE = 36;
 
     const SHOP_TITLE_MAX_LEN = 18;
 
@@ -60,18 +60,19 @@ class PosterUtil
 
     const QR_PAD_BOTTOM = 32;
 
-    const QR_HINT_GAP = 14;
+    /** 价格下方:长按识别提示(原二维码旁「微信扫码下单」已取消) */
+    const FOOTER_BUY_HINT = '长按识别小程序购买';
 
-    const SCAN_HINT = '微信扫码下单';
+    const FOOTER_BUY_HINT_SIZE = 26;
 
-    const FOOTER_STAFF_Y = 32;
+    const FOOTER_BUY_HINT_SHADOW = 55;
+
+    const FOOTER_BUY_HINT_Y = 24;
 
     const FOOTER_TEXT_GAP = 12;
 
     const FOOTER_PRICE_SIZE = 56;
 
-    const FOOTER_STAFF_SIZE = 26;
-
     /**
      * 与 admin/home/me 一致:门店展示名、Logo 对象路径、itemRemark
      */
@@ -286,12 +287,12 @@ class PosterUtil
 
     private static function footerTextYPositions()
     {
-        $staffY = self::FOOTER_STAFF_Y;
-        $staffH = (int)ceil(self::FOOTER_STAFF_SIZE * 1.3);
-        $priceY = $staffY + $staffH + self::FOOTER_TEXT_GAP;
+        $buyHintH = (int)ceil(self::FOOTER_BUY_HINT_SIZE * 1.25);
+        $buyHintY = self::FOOTER_BUY_HINT_Y;
+        $priceY = $buyHintY + $buyHintH + self::FOOTER_TEXT_GAP;
 
         return [
-            'staff' => $staffY,
+            'buyHint' => $buyHintY,
             'price' => $priceY,
         ];
     }
@@ -372,16 +373,6 @@ class PosterUtil
         return self::CANVAS_PAD_Y + (int)((self::SHOP_LOGO_SIZE - self::SHOP_TITLE_SIZE) / 2);
     }
 
-    private static function qrCenterX()
-    {
-        return self::POSTER_W - self::QR_PAD_RIGHT - (int)(self::QR_SIZE / 2);
-    }
-
-    private static function scanHintYFromBottom()
-    {
-        return self::QR_PAD_BOTTOM + self::QR_SIZE + self::QR_HINT_GAP;
-    }
-
     public static function buildCanvasBaseUrl($prefix, $totalH)
     {
         $absoluteMin = self::coverStartY() + self::IMG_H_MIN + self::FOOTER_H;
@@ -429,17 +420,12 @@ class PosterUtil
         $miniCode = $options['miniCode'] ?? '';
         $priceText = $options['priceText'] ?? '';
         $name = $options['name'] ?? '';
-        $staffText = $options['staffText'] ?? '';
         $mainId = (int)($options['mainId'] ?? 0);
         $flowerNum = (int)($options['flowerNum'] ?? 0);
         $subtitle = trim((string)($options['subtitle'] ?? ''));
         $itemRemark = trim((string)($options['itemRemark'] ?? ''));
         $shopTitle = trim((string)($options['shopTitle'] ?? ''));
         $shopLogo = trim((string)($options['shopLogo'] ?? ''));
-        $scanHint = trim((string)($options['scanHint'] ?? self::SCAN_HINT));
-        if ($scanHint === '微信扫码采购') {
-            $scanHint = self::SCAN_HINT;
-        }
 
         $coverW = (int)($options['coverWidth'] ?? 0);
         $coverH = (int)($options['coverHeight'] ?? 0);
@@ -495,15 +481,13 @@ class PosterUtil
             $url .= '/watermark,image_' . $logoB64 . ',g_se,x_210,y_48';
         }
 
-        $url .= '/watermark,text_' . stringUtil::ossBase64($staffText)
-            . ',g_sw,x_' . self::CANVAS_PAD_X . ',y_' . $footerY['staff']
-            . ',color_999999,type_' . self::FONT . ',size_' . self::FOOTER_STAFF_SIZE;
         $url .= '/watermark,text_' . stringUtil::ossBase64($priceText)
             . ',g_sw,x_' . self::CANVAS_PAD_X . ',y_' . $footerY['price']
             . ',color_EE2C2C,type_' . self::FONT . ',size_' . self::FOOTER_PRICE_SIZE;
-        $url .= '/watermark,text_' . stringUtil::ossBase64($scanHint)
-            . ',g_south,x_' . self::qrCenterX() . ',y_' . self::scanHintYFromBottom()
-            . ',color_888888,type_' . self::FONT . ',size_24';
+        $url .= '/watermark,text_' . stringUtil::ossBase64(self::FOOTER_BUY_HINT)
+            . ',g_sw,x_' . self::CANVAS_PAD_X . ',y_' . $footerY['buyHint']
+            . ',color_888888,type_' . self::FONT . ',size_' . self::FOOTER_BUY_HINT_SIZE
+            . ',shadow_' . self::FOOTER_BUY_HINT_SHADOW;
 
         return $url;
     }