首页 > 解决方案 > 保存由 Google Chart API 创建的 PNG 文件

问题描述

使用 Google API 创建了一个二维码(是的,我知道它已弃用)但是我似乎无法保存生成的图像。如果我单击图像并尝试保存它只会保存一个 PHP 文件

有任何想法吗 ??

这是代码

$data = isset($_GET['data']) ? $_GET['data'] : 'FGS Ingredients';
$size = isset($_GET['size']) ? $_GET['size'] : '300x300';
$logo = 'fgsqrcodelogo.png';
header('Content-type: image/png');
// Get QR Code image from Google Chart API
// http://code.google.com/apis/chart/infographics/docs/qr_codes.html
$QR = imagecreatefrompng('https://chart.googleapis.com/chart?cht=qr&chld=H|1&chs='.$size.'&chl='.urlencode($data));
if($logo !== FALSE){
    $logo = imagecreatefromstring(file_get_contents($logo));
    $QR_width = imagesx($QR);
    $QR_height = imagesy($QR);

    $logo_width = imagesx($logo);
    $logo_height = imagesy($logo);

    // Scale logo to fit in the QR Code
    $logo_qr_width = $QR_width/3;
    $scale = $logo_width/$logo_qr_width;
    $logo_qr_height = $logo_height/$scale;

    imagecopyresampled($QR, $logo, $QR_width/3, $QR_height/3, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
}
imagepng($QR);
imagedestroy($QR);
file_put_contents('myfile.png',$QR);

标签: phpgoogle-apiimagecreatefrompng

解决方案


解决了...刚刚添加

$name = str_replace(' ','-',$data);
$save = "". strtolower($name) .".png";
then changed to imagepng($QR,$save);

推荐阅读