2010-04-13 51 views
1

我正在創建一個向MySQL表添加員工信息的表單,並且需要將單張照片附加到該文件。這是內容管理系統的一部分,用戶不知道如何調整照片的大小,因此我需要在上傳後將圖像大小調整爲設置的大小。這怎麼用PHP來完成?請注意,我並非試圖完成縮略圖,只是縮放上傳的縮略圖。在通過PHP提交表單後調整照片大小

回答

1

您應該查看Verot的php upload class。它通過非常簡單的編碼處理所有圖像修改選項。

示例代碼:

$foo = new Upload($_FILES['form_field']); 
if ($foo->uploaded) { 
    // save uploaded image with no changes 
    $foo->Process('/home/user/files/'); 
    if ($foo->processed) { 
    echo 'original image copied'; 
    } else { 
    echo 'error : ' . $foo->error; 
    } 
    // save uploaded image with a new name 
    $foo->file_new_name_body = 'foo'; 
    $foo->Process('/home/user/files/'); 
    if ($foo->processed) { 
    echo 'image renamed "foo" copied'; 
    } else { 
    echo 'error : ' . $foo->error; 
    } 
    // save uploaded image with a new name, 
    // resized to 100px wide 
    $foo->file_new_name_body = 'image_resized'; 
    $foo->image_resize = true; 
    $foo->image_convert = gif; 
    $foo->image_x = 100; 
    $foo->image_ratio_y = true; 
    $foo->Process('/home/user/files/'); 
    if ($foo->processed) { 
    echo 'image renamed, resized x=100 
      and converted to GIF'; 
    $foo->Clean(); 
    } else { 
    echo 'error : ' . $foo->error; 
    } 
} 
+0

謝謝,這看起來像它可能工作得很好.. :) – Benjamin 2010-04-14 01:00:38

1

您的服務器是否安裝了用於PHP的GD庫? (如果沒有,你可以得到它嗎?)

PHP具有廣泛的函數處理圖像數據。

http://php.net/manual/en/book.image.php

(如果你看看上面,仍然真的不知道該怎麼做,讓我知道,我會添加一些更多的信息)

+0

我確實已經安裝了GD,我想知道如何使用它來處理這個問題..該手冊有點沉重。任何具體到這個任務的細節將非常有幫助 – Benjamin 2010-04-14 03:09:44

0

一個簡單的出路就是使用timthumb。它會根據用戶請求縮放和調整圖像大小。

0

大多數PHP安裝有GD庫擴展內置。人們在這裏遇到的典型問題是,他們試圖使用明顯名稱的imagecopyresized()函數(它可以創建醜陋的圖像),而不是使用imagecopyresampled(),這會產生更好的輸出。

如果您的服務器安裝了ImageMagick,通常可以通過構建一個漂亮的shell命令來驅動imagemagick,獲得更好的結果。