WIN-2308041133\Administrator 2 days ago
parent
commit
76da325450
1 changed files with 9 additions and 5 deletions
  1. 9 5
      app/api/controller/user/UserBillController.php

+ 9 - 5
app/api/controller/user/UserBillController.php

@@ -212,8 +212,10 @@ class UserBillController
                 // 昵称宽高 (Bold, 50pt)
                 $nickname = $user['nickname'];
                 $nicknameBox = imagettfbbox(50, 0, $fontBoldPath, $nickname);
-                $nicknameWidth = abs($nicknameBox[4] - $nicknameBox[6]);
-                $nicknameLeft = ($posterWidth - $nicknameWidth) / 2;
+                $minX = min($nicknameBox[0], $nicknameBox[2], $nicknameBox[4], $nicknameBox[6]);
+                $maxX = max($nicknameBox[0], $nicknameBox[2], $nicknameBox[4], $nicknameBox[6]);
+                $nicknameWidth = $maxX - $minX;
+                $nicknameLeft = ($posterWidth - $nicknameWidth) / 2 - $minX;
                 foreach ($routineSpreadBanner as $key => &$item) {
                     $posterInfo = '海报生成失败:(';
                     $config = array(
@@ -320,13 +322,15 @@ class UserBillController
                 if (strpos($avatarUrl, 'http') !== 0) {
                     $avatarUrl = rtrim($siteUrl, '/', '\\') . '/' . ltrim($avatarUrl, '/');
                 }
-                $posterWidth = 783;  // 公众号海报标准宽,实际调整
+                $posterWidth = 750;  // 公众号海报标准宽,实际调整
                 $fontBoldPath = $rootPath . 'public' . DS . $filelink['Bold'];  // 注意:原代码两个text都Bold
                 // 昵称宽高 (Bold, 50pt)
                 $nickname = $user['nickname'];
                 $nicknameBox = imagettfbbox(50, 0, $fontBoldPath, $nickname);
-                $nicknameWidth = abs($nicknameBox[4] - $nicknameBox[6]);
-                $nicknameLeft = ($posterWidth - $nicknameWidth) / 2;
+                $minX = min($nicknameBox[0], $nicknameBox[2], $nicknameBox[4], $nicknameBox[6]);
+                $maxX = max($nicknameBox[0], $nicknameBox[2], $nicknameBox[4], $nicknameBox[6]);
+                $nicknameWidth = $maxX - $minX;
+                $nicknameLeft = ($posterWidth - $nicknameWidth) / 2 - $minX;
                 foreach ($routineSpreadBanner as $key => &$item) {
                     $posterInfo = '海报生成失败:(';
                     $config = array(