HOME 元のページに戻る

HTMLで画像

オリジナル画像

左の画像通常のHTMLでフォルダ内読み込みのコードです

  • <img src="dmich.JPG" height="300" width="399" />

フォルダー内PHPファイルでサムネイル画像読み込み

右の画像PHPで

外部読み込み<img src="img.php">img.phpファイルのコードです


                      <?php
                    $filename = 'dmich.JPG';

                    // 1. ファイルが存在するか確認
                    if (!file_exists($filename)) {
                        header('Content-Type: text/plain');
                        die('画像ファイルが見つかりません');
                    }

                    // 2. JPEG画像を読み込む
                    $img = ImageCreateFromJPEG($filename);

                    // 3. 元画像の幅と高さを取得
                    $width = imagesx($img);
                    $height = imagesy($img);

                    // 4. 縮小後の幅と高さを計算(1/20サイズ)
                    $newWidth = floor($width / 20);
                    $newHeight = floor($height / 20);

                    // 5. 新しい縮小画像用の空画像を作成
                    $out = ImageCreateTrueColor($newWidth, $newHeight);

                    // 6. 元画像を縮小して新しい画像にコピー(リサンプリングあり)
                    ImageCopyResampled($out, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);

                    // 7. ヘッダーを送信して出力がJPEG画像であることを通知
                    header('Content-Type: image/jpeg');

                    // 8. 縮小画像をJPEGとして出力
                    ImageJPEG($out);

                    // 9. メモリ解放
                    imagedestroy($img);
                    imagedestroy($out);
                    ?>


/* 
このPHPスクリプトは、JPEG画像「dmich.JPG」を読み込み、
縦横1/20サイズに縮小してブラウザにJPEG形式で出力するものです。
以下、各処理ステップの説明です。
*/

/* 1 */ if (!file_exists($filename))
// 指定されたファイル(dmich.JPG)が存在しない場合は、エラーメッセージを表示して終了します。

/* 2 */ $img = ImageCreateFromJPEG($filename);
// JPEG画像を読み込み、PHPの画像リソースとして $img に格納します。

/* 3 */ $width = imagesx($img); $height = imagesy($img);
// 元画像の幅と高さをそれぞれ取得し、変数に格納します。

/* 4 */ $newWidth = floor($width / 20); $newHeight = floor($height / 20);
// 元画像の幅と高さを1/20に縮小した新しいサイズを整数で計算します。

/* 5 */ $out = ImageCreateTrueColor($newWidth, $newHeight);
// 新しいサイズの空の画像リソース(キャンバス)を作成します。

/* 6 */ ImageCopyResampled(...);
// 元画像をリサンプリング(画質を保ったまま)して、新しい画像に縮小コピーします。
// 引数:コピー先, コピー元, コピー先座標, コピー元座標, コピー先サイズ, コピー元サイズ。

/* 7 */ header('Content-Type: image/jpeg');
// ブラウザに対して、これから送るコンテンツはJPEG画像であると通知します。

/* 8 */ ImageJPEG($out);
// 縮小済みの画像をJPEG形式で出力します(ブラウザに表示されます)。

/* 9 */ imagedestroy(...);
// 使用した画像リソースをメモリから解放します。

img.phpのファイル読み込み