首頁 >後端開發 >php教程 >如何在保留寬高比的同時從上傳的圖像建立縮圖?

如何在保留寬高比的同時從上傳的圖像建立縮圖?

Susan Sarandon
Susan Sarandon原創
2024-11-07 02:55:03980瀏覽

How to Create Thumbnails from Uploaded Images While Preserving Aspect Ratio?

從上傳的影像建立縮圖以保留寬高比

簡介:

當使用者將影像上傳到您的網站時,它是通常需要創建縮圖來顯示圖像的較小版本而不影響其縱橫比。這是有關如何在保留原始圖像的同時創建縮圖的綜合指南。

挑戰:

您的目標是建立上傳影像的兩個版本:原始影像影像和縮圖。原始圖像應保存到您的伺服器,縮圖應為保留其寬高比的原始圖像的較小版本。

實作:

1.擷取影像資料:

在PHP 中,您可以使用$_FILES 全域變數檢索上傳的圖像資料。使用 file_get_contents() 函數將映像資料讀入字串。

2.決定影像尺寸:

使用 getimagesize() 函數取得影像尺寸。這將傳回一個數組,其中包含圖像的寬度、高度和其他資訊。

3.建立縮圖:

使用 Imagick 等影像處理庫來建立縮圖。 Imagick 提供了各種影像處理方法,包括調整大小和裁剪。確保在調整大小時保留縱橫比,以避免拉伸或擠壓影像。

4.儲存映像:

使用 file_put_contents() 函數將原始映像和縮圖儲存到您的伺服器。確保縮圖使用唯一的檔案名,例如添加前綴或後綴以避免覆蓋原始影像。

5.調整圖片大小(附加選項):

如果 Imagick 在您的伺服器上不可用,您可以使用 GD 庫。以下是使用GD 建立縮圖的範例函數:

function makeThumbnails($updir, $img, $id)
{
    $thumbnail_width = 134;
    $thumbnail_height = 189;
    $arr_image_details = getimagesize("$updir" . $id . '_' . "$img");
    // Calculate new dimensions while preserving aspect ratio
    // ...
    // Create new image and copy from original image with resizing
    // ...
    // Save the thumbnail
    imagepng($new_image, "$updir" . $id . '_' . "thumb" . "$img");
}

結論:

執行下列步驟並使用適當的影像處理函式庫,您可以有效地從上傳的圖像創建縮圖,同時保留其縱橫比。這可確保您的縮圖保持原始圖像的完整性並增強網站或應用程式的視覺吸引力。

以上是如何在保留寬高比的同時從上傳的圖像建立縮圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn