PHP-存储多个图像或以不同尺寸显示?

时间:2014-03-18 15:17:46

标签: php image web

我将所有图像存储在一个文件夹中。这些图像由用户通过他的帐户上传。因此,图像的大小不同。

我想以2个div元素显示图像,这些元素具有固定的宽度和高度(但彼此不同)。尺寸可以是40×40像素和200×200像素的量级。什么是更好的方法 - 1)在第一个位置上传时,在文件夹中存储不同尺寸的图像,或

2)使用HTML中img标签中的“height”和“width”属性以正确的大小显示图像。 或者还有其他方式吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

当然,存储已经调整大小和裁剪的图像会更好 如果您想要具有不同尺寸的多个图像 它将发送更少的数据。

更好的方法是存储所有图像的所有尺寸。在这种情况下,它的工作速度要快得多。

original/test.jpg
40x40/test.jpg
200x200/test.jpg

另请阅读这篇文章 http://selbie.wordpress.com/2011/01/23/scale-crop-and-center-an-image-with-correct-aspect-ratio-in-html-and-javascript/

答案 1 :(得分:0)

最好的方法是存储原始图像并从客户端请求正确尺寸的图像。此时如果找不到正确大小的图像,请创建它并将其添加到缓存文件夹。然后,从缓存中提供正确大小的图像。

因此,如果上传了大小为1200x800的image.png,请将其存储在original_images文件夹中。

然后,构建一个php脚本size_image.php并在你的HTML中使用它

<img src="sized_image.php?img=image.png&height=200&width=200" />

在您的sizes_image.php脚本中,您将执行以下操作

$fileName = "cached_image/{$_GET['width']}x{$_GET['height']}_{$_GET['img']}";
if (!file_exists($fileName))
{
    //resize and store in $fileName
}


$type = 'image/png'; //Or whatever type the image is
header('Content-Type:' . $type);
header('Content-Length: ' . filesize($fileName));
readfile($fileName);
exit();