從上傳的影像建立縮圖
為上傳的影像產生縮圖可確保它們不會出現扭曲,同時保留原始影像品質.在這個問題中,用戶尋求有關創建和儲存上傳圖像的原始版本和縮圖版本的指導。
使用者的資料庫設定包括兩個表格“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中文網其他相關文章!