moonsflyer 4 месяцев назад
Родитель
Сommit
86a1fe77ec
1 измененных файлов с 21 добавлено и 5 удалено
  1. 21 5
      app/common/service/GiftCardQrCodeService.php

+ 21 - 5
app/common/service/GiftCardQrCodeService.php

@@ -12,6 +12,8 @@ use BaconQrCode\Writer;
 use think\facade\Log;
 use app\common\service\WeChatConfigService;
 use EasyWeChat\Factory;
+use BaconQrCode\Renderer\Image\SvgImageBackEnd;
+use BaconQrCode\Renderer\Image\EpsImageBackEnd;
 
 
 /**
@@ -40,17 +42,19 @@ class GiftCardQrCodeService
             $tempFileName = 'qrcode_' . $cardNo . '_' . time() . '.png';
             $tempFilePath = $tempDir . $tempFileName;
 
-            // 使用BaconQrCode生成二维码
+
+            
+            // 在生成部分
             $renderer = new ImageRenderer(
-                new RendererStyle(430, 2), // size: 430, margin: 2
-                new ImagickImageBackEnd()
+                new RendererStyle(430, 2),
+                new ImagickImageBackEnd() // 如果没有Imagick,尝试其他BackEnd
             );
             $writer = new Writer($renderer);
             $qrCodeData = $writer->writeString($qrContent);
             
             // 保存到文件
             file_put_contents($tempFilePath, $qrCodeData);
-
+            outFileLog($qrCodeData, 'qr_code', '$qrCodeData');
             Log::info('Regular QR code generated successfully', [
                 'cardNo' => $cardNo,
                 'scene' => $cardPass,
@@ -237,4 +241,16 @@ class GiftCardQrCodeService
 
         return $result;
     }
-}
+}
+
+// 生成SVG格式然后转换为PNG
+$renderer = new ImageRenderer(
+    new RendererStyle(430, 2),
+    new SvgImageBackEnd()
+);
+$writer = new Writer($renderer);
+$svgString = $writer->writeString($qrContent);
+
+// 如果需要PNG格式,可以使用其他方法转换
+// 或者直接保存SVG格式
+file_put_contents($tempFilePath, $svgString);