我正在尝试使用Google QR代码生成器通过PHP创建动态图像,然后将该图像保存到服务器上的临时目录中。我想我很接近,但是我不经常在PHP中编码,所以我需要一些额外的指导。
这是我的代码:
header("content-type: image/png");
$url = "https://chart.googleapis.com/chart?chs=177x177&cht=qr&chl=MyHiddenCode&choe=UTF-8";
$qr_image = imagecreatefrompng(file_get_contents($url));
$cwd = getcwd();
$cwd = $cwd . "/temp";
$save = "$cwd"."/chart123.png";
imagepng($qr_image);
chmod($save,0755);
imagepng($qr_image,$save,0,NULL);
感谢您的所有见解。
答案 0 :(得分:1)
除非您实际对图像进行更改(调整大小,绘图等),否则您不需要使用GD来创建新图像。您可以使用file_get_contents
来获取图片,并file_put_contents
将其保存在某处。为了显示图像,只需在发送标题后回显您从file_get_contents
返回的内容。
示例:
<?php
//debug, leave this in while testing
error_reporting(E_ALL);
ini_set('display_errors', 1);
$url = "url for google here";
$imageName = "chart123.png";
$savePath = getcwd() . "/temp/" . $imageName;
//try to get the image
$image = file_get_contents($url);
//try to save the image
file_put_contents($savePath, $image);
//output the image
//if the headers haven't been sent yet, meaning no output like errors
if(!headers_sent()){
//send the png header
header("Content-Type: image/png", true, 200);
//output the image
echo $image;
}
答案 1 :(得分:1)
我猜你的代码太多,使用类似的东西:
header("content-type: image/png");
$img = file_get_contents("https://chart.googleapis.com/chart?chs=177x177&cht=qr&chl=MyHiddenCode&choe=UTF-8");
file_put_contents(getcwd()."/temp/chart123.png", $img);
echo $img;
请注意,由于图片已由googleapis生成,因此您不需要使用GD库,这就足够了:
$(function () {
var i = tabdate.length;
$('#daily').highcharts({
chart: {
type: 'area'
},
title: {
text: 'Statistiques journalières'
},
subtitle: {
text: ''
},
xAxis: {
type: 'datetime',
dateTimeLabelFormats: { // don't display the dummy year
month: '%e. %b',
year: '%b'
},
title: {
text: 'Date'
}
},
yAxis: {
title: {
text: 'Snow depth (m)'
},
min: 0
},
tooltip: {
headerFormat: '<b>{series.name}</b><br>',
pointFormat: '{point.x:%e. %b}: {point.y:.2f} m'
},
plotOptions: {
spline: {
marker: {
enabled: true
}
}
},
series: [{
name: 'Winter 2013-2014',
data: [
HERE
]
}]
});
});