gpt4 book ai didi

php - imagepng 和 imagegif

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

我需要一些有关 PHP GD 的帮助。这是我的一段代码。

    header("Content-type: image/gif");

$image = imagecreatetruecolor(550, 20);
imagealphablending($image, false);

$col=imagecolorallocatealpha($image,255,255,255,127);
$black = imagecolorallocate($image, 0, 0, 0);

imagefilledrectangle($image,0,0,550,20,$col);
imagealphablending($image, true);

$font_path = 'font/arial.ttf';
imagettftext($image, 9, 0, 16, 13, $black, $font_path, $lastlisten);
imagesavealpha($image, true);

imagepng($image);

问题是当我使用 imagepng 时,它可以像这样显示 png。 enter image description here

但是如果我改用imagegif,它就会变成这样。
enter image description here

我确实尝试过为 gif 和 png 使用不同的标题。 imagegif 的结果仍然相同。
问题是我该如何制作才能正确显示 GIF 版本?谢谢你

最佳答案

第一个问题:你的角色很丑:那是因为你在使用 imagecreatetruecolor 时需要设置一个颜色较少的调色板。

$image = imagecreatetruecolor(550, 20);
imagetruecolortopalette($image, true, 256);

应该可以解决这个问题。

第二个问题:没有透明度。

正如您在 PHP manual 上看到的那样,

imagesavealpha() sets the flag to attempt to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.



此功能不适用于 GIF 文件。

您可以使用 imagecolortransparent相反,但这不会是完美的,因为字体具有抗锯齿功能,可以使它们的边框更甜美。

这是我的代码:
<?php

$lastlisten = "test test test test test test";

error_reporting(E_ALL);
header("Content-type: image/gif");

$image = imagecreatetruecolor(550, 20);
imagetruecolortopalette($image, true, 256);

$transparent=imagecolorallocatealpha($image,255,255,255,127);
imagecolortransparent( $image, $transparent);
imagefilledrectangle($image,0,0,550,20,$transparent);

$black = imagecolorallocate($image, 0, 0, 0);
$font_path = dirname(__FILE__) . '/font.ttf';
imagettftext($image, 9, 0, 16, 13, $black, $font_path, $lastlisten);

imagegif($image);

结果 here

希望这会有所帮助。

关于php - imagepng 和 imagegif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12344927/

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