如何在 PHP 中有效率地從上傳的圖片產生縮圖?

Linda Hamilton
發布: 2024-11-07 16:41:03
原創
952 人瀏覽過

How to Efficiently Generate Thumbnails from Uploaded Images in PHP?

從上傳的影像建立縮圖

為上傳的影像產生縮圖可確保它們不會出現扭曲,同時保留原始影像品質.在這個問題中,用戶尋求有關創建和儲存上傳圖像的原始版本和縮圖版本的指導。

使用者的資料庫設定包括兩個表格“user_pic”和“user_pic_small”,用於儲存原始映像和縮圖版本分別。提供的 PHP 程式碼處理圖像上傳和存儲,但缺乏縮圖創建的邏輯。

使用 PHP 的 GD 函式庫的解決方案:

此解決方案涉及使用 PHP 的 GD 函式庫操作並產生縮圖。定義一個函數以將上傳的圖像、指定的尺寸和品質作為輸入。它會計算適當的尺寸並創建具有按比例大小的空白的縮圖,以確保一致性。

用法範例:

function makeThumbnails($updir, $img, $id)
{
    // Define thumbnail size
    $thumbnail_width = 134;
    $thumbnail_height = 189;
    
    // Calculate dimensions
    // ...
    
    // Check image type and process
    if ($arr_image_details[2] == IMAGETYPE_GIF) {
        $imgt = "ImageGIF";
    } elseif ($arr_image_details[2] == IMAGETYPE_JPEG) {
        $imgt = "ImageJPEG";
    } elseif ($arr_image_details[2] == IMAGETYPE_PNG) {
        $imgt = "ImagePNG";
    }
    
    if ($imgt) {
        // Image manipulation
        // ...
        
        // Output the thumbnail
        $imgt($new_image, "$updir" . $id . '_' . "$thumb_beforeword" . "$img");
    }
}
登入後複製

使用Imagick 的解:

此解決方案利用此解決方案利用庫提供更高階的影像處理功能。此函數使用 Imagick 類別的內建方法產生具有指定尺寸和品質的縮圖。

用法範例:

/**
 * Generate Thumbnail using Imagick class
 */
function generateThumbnail($img, $width, $height, $quality = 90)
{
    if (is_file($img)) {
        $imagick = new Imagick(realpath($img));
        
        // Image processing
        // ...
        
        // Output the thumbnail
        file_put_contents($filename_no_ext . '_thumb' . '.jpg', $imagick);
        return true;
    } else {
        throw new Exception("No valid image provided with {$img}.");
    }
}
登入後複製

結論:

兩種解決方案都提供了從上傳圖像創建縮略圖像略圖的有效方法,同時保持其品質。選擇的方法取決於應用程式的特定要求和可用資源。

以上是如何在 PHP 中有效率地從上傳的圖片產生縮圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板