我无法让 PHP GD 图像大小调整脚本工作

问题描述 投票:0回答:1

我看过很多关于使用 PHP 和 GD 调整图像大小的视频,并且剪切并粘贴了很多我被告知可以完成这项工作的代码,但我永远无法获得图像脚本来调整大小甚至显示图像。他们根本无法为我工作。由于我遵循了所有建议但没有结果,所以我觉得我缺少以这种方式处理图像的一些基本知识,尽管我有 20 多年的 php 编码经验。

下面是我尝试过但没有成功的最新脚本。我按照网站上向我解释的那样一步步写下来。我以为我理解了正在发生的一切,但脚本没有为我调整任何图像的大小。当我尝试加载页面时,该页面只是“中断”,返回一个损坏的图像图标。 (我已验证图像 $file_name 存在于提供的子目录中。)

附加信息:我使用的是 Apache Unix 共享托管平台。大约 10 年前,我确实使用 GD 库得到了一两个脚本来实际工作(经过多次尝试),并且我的托管设置从那时起就没有改变。我认为在这种情况下,修复涉及消除内容标题前面的代码中的空格——尽管我观看的大多数有关 PHP 图像的教程甚至从未提及内容标题。

  <?php
header('Content-Type: image/png');
 
 $dimension="400";
 $file_name="pics/10.png";
 $image_size=getimagesize($file_name);
 $width=$image_size[0];
 $height=$image_height[1];
 $ratio=$width/$height;
 if ($ratio>1) {
     
     $new_width=$dimension;
     $new_height=$dimension/$ratio;
 } else {
     
     $new_height=$dimension;
     $new_width=$dimension*$ratio;
     
 }
 
 $src=imagecreatefromstring($file_name);
 $destination=imagecreatetruecolor($new_width,$new_height);
 imagecopyresampled($destination,$src,0,0,0,0,$new_width,$new_height,$width, $height);
 imagepng($destination,$file_name);
 
 imagedestroy($src);
 imagedestroy($destination);
 
 ?>
php gd imagecreatefrompng
1个回答
0
投票

imagecreatefromstring
采用图像数据字符串,而不是文件路径

imagecreatefromstring(string $data): GdImage|false

参数¶

数据
包含图像数据的字符串。

获取图像数据的字符串

$data = file_get_contents($file_name)
$src = imagecreatefromstring($data);
© www.soinside.com 2019 - 2024. All rights reserved.