ホームページ > バックエンド開発 > PHPチュートリアル > PHP でアップロードされた画像からサムネイルを効率的に生成するにはどうすればよいですか?

PHP でアップロードされた画像からサムネイルを効率的に生成するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-07 16:41:03
オリジナル
968 人が閲覧しました

How to Efficiently Generate Thumbnails from Uploaded Images in PHP?

アップロードされた画像からサムネイルを作成する

アップロードされた画像のサムネイルを生成すると、元の画像の品質を維持しながら、画像が歪んで表示されなくなります。この質問では、ユーザーは、アップロードされた画像のオリジナル バージョンとサムネイル バージョンの両方を作成して保存するためのガイダンスを求めています。

ユーザーのデータベース設定には、オリジナルとサムネイルを保存するための 2 つのテーブル「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 ライブラリを活用しています。この関数は、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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート