我看过很多关于使用 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);
?>
imagecreatefromstring
采用图像数据字符串,而不是文件路径
imagecreatefromstring(string $data): GdImage|false
参数¶
数据
包含图像数据的字符串。
获取图像数据的字符串
$data = file_get_contents($file_name)
$src = imagecreatefromstring($data);