为什么php imagefill总是黑的?

发布于 2024-08-14 21:59:41 字数 506 浏览 7 评论 0原文

这让我抓狂。如果您告诉我为什么我在本地 xampp 安装中看到这个红色方块的任何想法,我将非常感激。如果我在远程服务器中运行代码 (http://www.arreglaordenador.com/numberimage2.php< /a>) 我看到的方块是黑色而不是红色。你有什么想法吗?

<?php

$im = imagecreatetruecolor(100, 100);

// sets background to red
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?> 

谢谢

This is driving me mad. I would really appreciate if you told me any idea about why I see this square in red color just in my local xampp installation. If I run the code in the remote server (http://www.arreglaordenador.com/numberimage2.php) I see the square in black color instead of red. Do you have any ideas?

<?php

$im = imagecreatetruecolor(100, 100);

// sets background to red
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?> 

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

烦人精 2024-08-21 21:59:41

这是因为您使用imagecreatetruecolor()函数创建图像,并且您的GD版本有错误。 imagecreatetruecolor() 在某些 GD 版本中不会被某些颜色函数覆盖(我不记得是哪个)。你有两个解决方案。

  1. 要求您的托管服务将 GD 升级到最新的稳定版本。

  1. 使用 imagecreate() 函数来创建图像标识符,而不是 imagecreatetruecolor()

It's because you have used imagecreatetruecolor() function to create image and your GD version has bugs. imagecreatetruecolor() won't override by some color function in some GD versions(I don't remember which). You have two solutions.

  1. Ask your hosting service to upgrade GD to latest stable version.

or

  1. Use imagecreate() function to create image identifier instead imagecreatetruecolor().
第七度阳光i 2024-08-21 21:59:41

您可以先尝试分配不同的颜色吗?

$black = imagecolorallocate($im, 0, 0, 0);
$red = imagecolorallocate($im, 255, 0, 0);

我不明白为什么,但这对我来说看起来像是一个透明度问题(即由于某种原因选择红色作为透明颜色)。

这很可能是由于 GD 版本不同造成的。您能比较一下本地和远程的哪一个吗?

Can you try allocating a different colour first?

$black = imagecolorallocate($im, 0, 0, 0);
$red = imagecolorallocate($im, 255, 0, 0);

I don't exactly see why, but this looks like a transparency issue to me (i.e. red being selected as a transparent colour for some reason).

Most probably, this is due to different GD versions. Can you compare which one you have locally and which one remotely?

零崎曲识 2024-08-21 21:59:41

根据 imagecreatetruecolor() 文档,您的服务器可能没有安装了正确版本的 GD 映像库。

Based on the imagecreatetruecolor() documentation, your server probably doesn't have the correct version of the GD image library installed.

口干舌燥 2024-08-21 21:59:41

这绝对是您服务器上的 GD 问题,因为您的代码在我的本地 WAMP 和我的托管帐户上都运行良好。

This is definitely a GD issue on your server because your code works just fine on both my local WAMP and on my hosting account.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文