如果你不介意花费一些代码,然后看看在这里:http://php.net/manual/en/function.imagecopyresized.php
使用像这样的东西该功能,会给你一个相当不错的结果。以下是伪代码:
<?php
// From the manual
function resizeImage(...) {...}
function getImage($imageName, $width, $height) {
$dir = dirname($imageName);
$bImgName = basename($imageName);
$newName = "{$dir}/{$width}x{$height}.{$bImgName}";
if(!file_exists($newName)) {
resizeImage($newName, $width, $height);
}
return $newName;
}
?>
然后,在你的HTML ...
<div id="myDiv"> <!-- #myDiv { width: 400px; } -->
<img src="<?=getImage('img/myCoolPicture.jpeg', 400,400)?>">
</div>
,基本上变成
img/myCoolPicture.jpeg
到
img/400x400.myCoolPicture.jpeg
,甚至重用那个也是!
我没有为resizeImage写一个实现,这应该是你的任务,因为我不知道你工作的格式和类似的东西。但是从手册页给出的那个应该可以帮助你在那里开始。
这个想法来自缓存。你基本上是缓存调整后的版本,保留它们在文件系统上,并重用它们。有效减少发送的数据量。
希望它有帮助。 :)
如果你在一个5000x5000的图像上运行它,你根本不会节省带宽......但它的一个解决方案。 – 2014-10-04 02:02:08
感谢您的回答,但我不认为这是独自一人可以解决的问题。 下面是一个网站,其中包含我之后的布局:https:// paddle8。com/work/aime-jules-dalou/39388-moissonneur-affutant-sa-faux-reaper-sharpening-his-scythe(向下滚动页面,你会明白我的意思) – 2014-10-04 02:15:25
@IngwiePhoenix你绝对正确,我知道这一点,因为我目前正在为一位艺术家制作一些东西,这些艺术家给我的照片是5000x5000 – user3648062 2014-10-04 02:23:27