2009-11-12 110 views
0

好吧我真的新到PHP,我發現下面的下面的腳本。但我不知道如何使用它我想知道我在哪裏把鏈接的圖像例如images/photo.jpg爲了讓我開始學習這個腳本感謝。PHP圖像調整大小腳本?

這是代碼。

<?php 
function resizeImage($originalImage,$toWidth,$toHeight){ 

    // Get the original geometry and calculate scales 
    list($width, $height) = getimagesize($originalImage); 
    $xscale=$width/$toWidth; 
    $yscale=$height/$toHeight; 

    // Recalculate new size with default ratio 
    if ($yscale>$xscale){ 
     $new_width = round($width * (1/$yscale)); 
     $new_height = round($height * (1/$yscale)); 
    } 
    else { 
     $new_width = round($width * (1/$xscale)); 
     $new_height = round($height * (1/$xscale)); 
    } 

    // Resize the original image 
    $imageResized = imagecreatetruecolor($new_width, $new_height); 
    $imageTmp  = imagecreatefromjpeg ($originalImage); 
    imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

    return $imageResized; 
} 
?> 

回答

0

您可以將鏈接傳遞給原始JPEG作爲函數中的第一個參數,它將被設置爲$ originalImage。

所以調用函數時,你會使用:

resizeImage("images/photo.jpg",800,600); 

這兩個數字將是你的寬/高值。

0

而是回輸管路必須添加

header('Content-type: image/jpeg'); 
imagejpeg($imageResized); 

或檢查http://www.php.net/manual/en/function.imagejpeg.php例2保存爲JPEG圖像

+0

我想做更多,然後只保存一個JPG圖像。 – PeAk 2009-11-12 01:54:57

+0

是的,我明白了,但代碼丟失保存或顯示操作的圖片! – powtac 2009-11-12 03:40:26

+0

imagejpeg($ imageResized); 改變的圖像返回到瀏覽器! – powtac 2009-11-12 03:41:08

1

有幾個潛在的陷阱在這裏,所以我給你一些潛在的問題,你可以運行到:

  1. 您需要提供圖像的完整路徑以便讀取它。我用下面的腳本是:
 
function getRoot(){ 
    $cwd = getcwd(); 
    $splitCwd = explode("/", $cwd); 
    $root = ""; 
    for($count=0; $count<count($splitCwd)-1;$count++){ 
     $root .= '/' . $splitCwd[$count]; 
    } 
    $root = $root . '/'; 
    return $root; 
} 

然後,你可以通過在(getRoot()$圖像,...)

  • 創建開關將檢查文件類型(請參閱我的回答here)。這將允許您調整不僅僅是JPEG文件多,輸出的不僅僅是JPEG文件多,這是很好的透明度時均可受累。

  • 可能會有最後一個或兩個參數,即輸出文件名。這樣,您可以在保留原始圖像的同時製作縮略圖。在這種情況下,你會做的imagejpeg(或imagepng等),並通過其新名稱參數如果設置。