gpt4 book ai didi

php - 使用 PHP 创建透明 png 文件

转载 作者:行者123 更新时间:2023-12-02 22:59:52 24 4
gpt4 key购买 nike

目前我想创建一个质量最低的透明png。

代码:

<?php
function createImg ($src, $dst, $width, $height, $quality) {
$newImage = imagecreatetruecolor($width,$height);
$source = imagecreatefrompng($src); //imagecreatefrompng() returns an image identifier representing the image obtained from the given filename.
imagecopyresampled($newImage,$source,0,0,0,0,$width,$height,$width,$height);
imagepng($newImage,$dst,$quality); //imagepng() creates a PNG file from the given image.
return $dst;
}

createImg ('test.png','test.png','1920','1080','1');
?>

但是,也存在一些问题:

  1. 在创建任何新文件之前,我是否需要指定一个 png 文件?或者我可以在没有任何现有 png 文件的情况下创建吗?

    警告:imagecreatefrompng(test.png):无法打开流:

    中没有这样的文件或目录

    C:\DSPadmin\DEV\ajax_optipng1.5\create.php 第 4 行

  2. 虽然有错误消息,但它仍然生成一个 png 文件,但是我发现该文件是一个黑色图像,我是否需要指定任何参数使其透明?

谢谢。

最佳答案

至 1)imagecreatefrompng('test.png') 尝试打开文件 test.png,然后可以使用 GD 函数对其进行编辑。

到2)要启用 Alpha channel 的保存,请使用 imagesavealpha($img, true);。以下代码通过启用 Alpha 保存并用透明度填充来创建一个 200x200px 大小的透明图像。

<?php
$img = imagecreatetruecolor(200, 200);
imagesavealpha($img, true);
$color = imagecolorallocatealpha($img, 0, 0, 0, 127);
imagefill($img, 0, 0, $color);
imagepng($img, 'test.png');

关于php - 使用 PHP 创建透明 png 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17271742/

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