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);
    }
    /**
@@ -324,11 +331,11 @@
            while ($width < ($titleNum * $this->config['address'][0]['fontSize'] + $the_box + $fontX)) {
                $titleNum--;
            };
            if ($strlen > $titleNum && $titleNum) {
            if ($strlen > $titleNum && $titleNum>0) {
                $strArr = self::mbStrSplit($title, $titleNum);
            }
            $colorResource=self::colorResource($this->config['address'][0]['color'],$editor);
            if ($strlen > $titleNum && $titleNum) {
            if ($strlen > $titleNum && $titleNum>0) {
                $y = $fontY + 10;
                foreach ($strArr as $k => $v) {
                    if ($k == 0) {
@@ -529,7 +536,9 @@
     * @return array
     */
    private function SizeLeftTop($fontSize,$left,$top){
        $data[0] = $fontSize * 0.76;
        // 正确的px到pt转换系数:1px = 0.75pt
        // 使用0.75而不是0.76以确保字体大小显示准确
        $data[0] = $fontSize * 0.75;
        $data[1]  = $left;
        $data[2]  = $top + $fontSize;
        return $data;