アップロードされた画像からサムネイルを作成する
アップロードされた画像のサムネイルを生成すると、元の画像の品質を維持しながら、画像が歪んで表示されなくなります。この質問では、ユーザーは、アップロードされた画像のオリジナル バージョンとサムネイル バージョンの両方を作成して保存するためのガイダンスを求めています。
ユーザーのデータベース設定には、オリジナルとサムネイルを保存するための 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 サイトの他の関連記事を参照してください。