imagecopyresized
(PHP 3, PHP 4, PHP 5)
imagecopyresized -- 画像の一部の複製とサイズ変更
説明
bool
imagecopyresized ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )
imagecopyresized() は指定した画像の矩形部分を
別の画像へコピーします。dst_image はコピー先の
イメージ ID、src_image はコピー元のイメージ ID です。
コピー先とコピー元の座標、幅、高さが異なった場合、画像の一部が
適当に伸縮されます。座標の原点は左上です。(仮に、
dst_image と src_image が
同一であれば)関数は領域のコピーに使うことができますが、領域が
重なったときの結果は予測できません。
注意:
パレットイメージの制限(255+1 色)による問題があります。
カラーの再サンプリングやフィルタリングには通常は 255 色以上の色が
必要となります。再サンプルするピクセルとその色を計算するために
ある種の近似計算が使用されます。パレットに新しい色を割り当てよう
として失敗すると、(理論的に)最も近い色が選択されます。
それは必ずしも常に可視色とは限りません。そのため、
空白(あるいは不可視な)といった不可思議な結果がもたらされます。
この問題を回避するには、imagecreatetruecolor() で
生成されるような True カラーイメージを目的のイメージとして
使用してください。
imagecopyresampled() も参照ください。
例
例 1. イメージをリサイズする
この例はイメージを半分のサイズで表示します。
<?php // ファイルと新規サイズ $filename = 'test.jpg'; $percent = 0.5;
// コンテントタイプ header('Content-type: image/jpeg');
// 新規サイズを取得する list($width, $height) = getimagesize($filename); $newwidth = $width * $percent; $newheight = $height * $percent;
// 読み込み $thumb = imagecreatetruecolor($newwidth, $newheight); $source = imagecreatefromjpeg($filename);
// リサイズ imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// 出力 imagejpeg($thumb); ?>
|
イメージは半分サイズで出力されますが、
imagecopyresampled()
を使用するとより良い品質になります。
|