我使用PHP腳本上傳和調整圖像大小,很簡單:調整圖像大小,並用PHP
if($_SERVER["REQUEST_METHOD"] == "POST") {
$image = $_FILES["image_upload"];
$uploadedfile = $image['tmp_name'];
if ($image) {
$filename = stripslashes($_FILES['image_upload']['name']);
$extension = getExtension($filename);
$extension = strtolower($extension);
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) {
$error_txt = 'Immagine incoretta';
$errors=1;
} else {
$size=filesize($uploadedfile);
if ($size > MAX_SIZE*1024) {
$error_txt = "Immagine troppo grande";
$errors=1;
}
if($extension=="jpg" || $extension=="jpeg") {
$uploadedfile = $uploadedfile;
$src = imagecreatefromjpeg($uploadedfile);
} else if($extension=="png") {
$uploadedfile = $uploadedfile;
$src = imagecreatefrompng($uploadedfile);
} else {
$src = imagecreatefromgif($uploadedfile);
}
list($width,$height)=getimagesize($uploadedfile);
$newwidth=500;
$newheight=375;
$tmp=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
$filename = "images/". generateRandomString(5) . $image['name'];
imagejpeg($tmp,$filename,100);
imagedestroy($src);
imagedestroy($tmp);
}
}
我想有一個遠一點,現在我只是調整圖像大小,無論想象中的比例,我想調整它到一個固定的高度,而不會失去原來的比例,這當然是通過裁剪+調整原始圖像的大小來實現的。
我不知道如何做到這一點用我的實際imagecreatetruecolor和imagecopyresampled功能,並尋找到PHP手冊看起來是不是很容易。
有一個非常good library我嘗試融入到我的代碼,使用它的那樣簡單mysite.com/lib/timthumb.php?src=castle1.jpg & H = 180 & W = 120但我不知道如何將其與我的實際代碼整合。
那麼,你有什麼建議?
你可以嘗試phpthumb庫,這是一個成熟的項目,而不是在這裏檢查演示:http://phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php請記住,在服務器中的圖像處理確實會造成一些問題,如佔用CPU,並可能造成嚴重的瓶頸。 – Panagiotis 2013-02-26 14:09:27
有一個很好的教程,用imagecreatetruecolor url調整大小:http://code.tutsplus.com/tutorials/image-resizing-made-easy-with-php--net-10362將幫助您調整大小而不會失去比例。 – 2014-07-05 12:52:26