【发布时间】:2013-10-21 13:32:52
【问题描述】:
我之前发布了另一个调整大小脚本不起作用的帖子,我对这个脚本做了更深入的了解,它的工作方式略有不同。
我走得更远了,只是现在有一个新问题。代码的前三行成功地将三个相同的文件放置在与文件相同的目标目录中,并且它是两个相应命名的缩略图文件。然后我想加载仍然是全尺寸的缩略图,并调整它们的大小,但脚本在imagecreatefromjpeg() 处停止,我似乎无法弄清楚为什么,因为$src 有一个值。
我认为我可以删除该行并将$source 替换为$src 在我的imagecopyresized() 函数中,这让我更加接近。但它会返回一个目标大小的缩略图,但缩略图是黑色的。
move_uploaded_file($tmpFilePath, $newFilePath);
copy($newFilePath, $thumb500);
copy($newFilePath, $thumb200);
function thumbImage($src, $dest, $newheight) {
list($width, $height) = getimagesize($src);
$newwidth = $width * ($newheight / $height);
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
header('Content-type: image/jpeg');
$source = imagecreatefromjpeg($src);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb, $dest);
}
thumbImage($thumb500, $thumb500, 500);
thumbImage($thumb200, $thumb200, 200);
我觉得这一定是一个普遍的问题。有什么建议吗?
【问题讨论】:
-
不知道缩略图是干什么用的。但如果只是以较小的格式显示用户提供的图像,则可能使用开源动态缩略图创建器,例如 Timthumb。
-
@vinsanity38 我已经尝试过其他插件,但它们都不能按照我想要的方式工作,这就是为什么我尽可能少地自己构建它。但我猜这里还有一个更简单的问题。
-
好的,如果您的缩略图图像返回黑色,那么它可能是您为裁剪位置设置的 x 和 y 坐标。它们超出图像尺寸,因此返回黑色图像
-
@vinsanity38 好吧,我认为情况并非如此......因为我从图像的最开头开始 0,0,0,0 并且没有裁剪。我将不得不使用负值来裁剪我的
imagecopyresized()中的图像之外,不是吗?
标签: php html file-upload upload thumbnails