HTMLで画像
オリジナル画像
左の画像通常のHTMLでフォルダ内読み込み
のコードです
<img src="dmich.JPG" height="300" width="399" />
フォルダー内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(...);
// 使用した画像リソースをメモリから解放します。