gpt4 book ai didi

php - 使用 PHP GD `imagecreatefromstring` 函数创建图像的问题

转载 作者:行者123 更新时间:2023-12-04 05:22:44 31 4
gpt4 key购买 nike

我有一个简单的服务,它使用通过 URL 传递的参数生成任何文本的 PNG 图像。参数之一是文本本身,其余参数是“字体”、“颜色”、“字体粗细”等。

这种 URL 的一个例子是:
http://picselbocs.com/projects/cakemyface/text.php?params=Verdana%7C18%7Cbold%7Cnormal%7Ccenter%7C%23cc0000%7Cunderline&text=Hello%20world!

生成以下PNG:

original

在另一个脚本中,我使用 cURL 来检索此服务生成的此类资源,然后我使用 imagecreatefromstring() 将其转换为图像。 ,因为我需要对它进行操作——比如旋转和缩放——,然后将它与其他一些图像合并。
为此,我使用以下代码:

function getImage($url){
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$resource = curl_exec($ch);
curl_close ($ch);

return $resource;
}


$url = "http://picselbocs.com/projects/cakemyface/text.php?params=Verdana%7C18%7Cbold%7Cnormal%7Ccenter%7C%23cc0000%7Cunderline&text=Hello%20world!";

$string = getImage($url);
$image = imagecreatefromstring($string);

// Send the image to the client
header("Content-type: image/png");
header("Content-disposition: inline; filename=mytext.png");
imagepng($image);
imagedestroy($image);

同样的代码可用 here ,您可以在其中看到输出。
问题是上面的代码输出了一些奇怪的 PNG,其中所有字母都是填充的矩形,如下例所示:

sample result

为什么会发生这种情况,我该如何解决?

另一件奇怪的事情是,如果我将文本图像的 URL 替换为例如使用 Google 图表工具生成的 QR 代码的链接(例如 QR code),结果就是它应该的样子。 .

最佳答案

经过一番玩耍后,我发现了问题和解决方案!

$image = imagecreatefromstring(file_get_contents('http://picselbocs.com/projects/cakemyface/text.php?params=Verdana|18|bold|normal|center|%23cc0000|underline&text=Hello%20world!'));
imagesavealpha($image, TRUE); // this is the fix
header("Content-Type: image/png");
imagepng($image);

我创建图像的方式只是一种不使用 curl 的快速方法,看来图像需要保存它的 alpha channel 。

关于php - 使用 PHP GD `imagecreatefromstring` 函数创建图像的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13540091/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com