$image_ewm = QrCode::format('png') ->margin(1) ->size(600) // 放大生成 ->generate(route('wechat.bill.personal', ['refereeId' => $refereeId])); $ewmpath = "uploads/agentshare/" . $refereeId . ".png"; Storage::disk("public")->put($ewmpath, $image_ewm); $image_ewm = imagecreatefrompng(storage_path("app/public/" . $ewmpath)); $image_share_bg = Utility::imagefrompngandjpe( storage_path(str_replace('/storage/', 'app/public/', $bgimg)) ); // 直接 copy,不 merge imagecopy( $image_share_bg, $image_ewm, imagesx($image_share_bg) - 400, imagesy($image_share_bg) - 235, 0, 0, imagesx($image_ewm), imagesy($image_ewm) ); // 用 PNG 输出 imagepng( $image_share_bg, storage_path("app/public/uploads/agentshare/" . $user->id . $refereeId . ".png") ); $imgUrl = "/storage/uploads/agentshare/" . $user->id . $refereeId . ".png";imagecopy不会缩放
$image_ewm = QrCode::format('png') ->margin(1) ->size(600) // 高清源图 ->generate(route('wechat.bill.personal', ['refereeId' => $refereeId])); $ewmpath = "uploads/agentshare/" . $refereeId . ".png"; Storage::disk("public")->put($ewmpath, $image_ewm); $image_ewm = imagecreatefrompng(storage_path("app/public/" . $ewmpath)); $image_share_bg = Utility::imagefrompngandjpe( storage_path(str_replace('/storage/', 'app/public/', $bgimg)) ); // 关键:resampled 缩放 imagecopyresampled( $image_share_bg, $image_ewm, imagesx($image_share_bg) - 400, imagesy($image_share_bg) - 235, 0, 0, 200, 200, imagesx($image_ewm), imagesy($image_ewm) ); // PNG 输出 imagepng( $image_share_bg, storage_path("app/public/uploads/agentshare/" . $user->id . $refereeId . ".png") );