如果你不介意花費一些代碼,然後看看在這裏: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