我想在PHP中创建一个小函数,它接受一个卷曲值并将其作为图像输出。我通过PHP图像处理和GD阅读,但我似乎在某个地方有一个逻辑错误,因为我得到的是一个空白图像,虽然我得到的价值没有问题。 有人看到我哪里出错了吗?
<?php
// Dynamic value on an image
header("Content-type: image/png");
// Get value from API.
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_HTTPHEADER, array('Accept: application/json',
'Content-Type: application/json'));
curl_setopt($c, CURLOPT_URL, 'https://www.bitstamp.net/api/ticker/');
$data = curl_exec($c);
curl_close($c);
$obj = json_decode($data);
$price = round((40/($obj->{'last'})),3);
$image = imagecreatefrompng("price.png");
$color = ImageColorAllocate($image, 0, 0, 255);
// Calculate horizontal alignment for the value.
$BoundingBox1 = imagettfbbox(13, 0, 'ITCKRIST.TTF', $price);
$boyX = ceil((125 - $BoundingBox1[2]) / 2);
// Write value.
imagettftext($image, 13, 0, $boyX+25, 92, $color, 'ITCKRIST.TTF', $price);
// Return output.
ImageJPEG($image, NULL, 93);
ImageDestroy($image);
?>
答案 0 :(得分:0)
您暗示您的图片文件是PNG
header("Content-type: image/png");
但是你输出了一个JPEG
ImageJPEG($image, NULL, 93);
根据PHP使用的GD库版本,当fontfile不以前导/开头时,然后.ttf将附加到文件名,库将尝试沿库定义的字体路径搜索该文件名
引用来自:http://php.net/manual/en/function.imagettftext.php
<?php
// Dynamic value on an image
header("Content-type: image/jpeg");
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
// Create a stream
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
$data = file_get_contents('https://www.bitstamp.net/api/ticker/', false, $context);
$obj = json_decode($data);
$price = round((40/($obj->{'last'})),3);
$image = imagecreatefrompng("price.png");
$color = ImageColorAllocate($image, 0, 0, 255);
// Calculate horizontal alignment for the value.
$BoundingBox1 = imagettfbbox(13, 0, './ITCKrist.TTF', $price);
$boyX = ceil((125 - $BoundingBox1[2]) / 2);
// Write value.
imagettftext($image, 13, 0, $boyX+25, 92, $color, './ITCKrist.TTF', $price);
// Return output.
ImageJPEG($image, NULL, 93);
ImageDestroy($image);
?>