From ef5d748e3e3331bd20d4065c33e7867c2637d1db Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Mon, 03 Nov 2025 18:07:14 +0800
Subject: [PATCH] 修复生成名片错误

---
 admin/app/common/service/business/Poster.php |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/admin/app/common/service/business/Poster.php b/admin/app/common/service/business/Poster.php
index 8546466..1db14ca 100644
--- a/admin/app/common/service/business/Poster.php
+++ b/admin/app/common/service/business/Poster.php
@@ -253,10 +253,17 @@
         imagesavealpha($targetImage, true);
         $bg = imagecolorallocatealpha($targetImage, 255, 255, 255, 127);
         imagefill($targetImage, 0, 0, $bg);
-        imagecopyresampled($targetImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
-        imagepng($targetImage, $imageUrl,0); // 根据需要选择合适的函数(如imagepng、imagegif等)
+        imagecopyresampled($targetImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); // 保存时使用最高质量
+        $ext = pathinfo($imageUrl, PATHINFO_EXTENSION);
+        if ($ext == 'png'){
+            imagepng($targetImage, $imageUrl,0); // 根据需要选择合适的函数(如imagepng、imagegif等)
+        }else{
+            imagejpeg($targetImage, $imageUrl,100);
+        }
+
         // 清理内存
         imagedestroy($targetImage);
+        imagedestroy($image);
     }
 
     /**
@@ -529,9 +536,11 @@
      * @return array
      */
     private function SizeLeftTop($fontSize,$left,$top){
-        $data[0] = $fontSize * 0.76;
-        $data[1]  = $left;
-        $data[2]  = $top + $fontSize;
+        // 正确的px到pt转换系数:1px = 0.75pt
+        // 使用0.75而不是0.76以确保字体大小显示准确
+        $data[0] = $fontSize * 0.75;
+        $data[1]  = (float)$left;
+        $data[2]  = (float)$top + $fontSize;
         return $data;
     }
 

--
Gitblit v1.9.2