Ext JSやRapid Driveなど
システム開発の技術情報をご紹介。

お問い合わせ 資料請求 無料見積り

お電話でお気軽にお問い合わせくださいTel 03-6805-2904 営業時間 [平日]AM 9:30 - PM 6:30

画像操作

画像操作について

画像を操作して拡大または縮小する

画像の拡大と縮小

例えば、Webのショッピングサイトで、ページにずらりと表示されている小さな写真から、気になった品物の写真を選択すると、その品物の拡大写真が表示されます。

画像を拡大する
<?php
    $size = getimagesize( "dl_button.png" );
    $image_in = imagecreatefrompng( "dl_button.png" );
    $image_out = imagecreate( $size[ 0 ] * 1.2, $size[ 1 ] * 1.2 );

    imagecopyresized( $image_out, $image_in, 0, 0, 0, 0, $size[ 0 ] * 1.2, $size[ 1 ] * 1.2, $size[ 0 ], $size[ 1 ] );

    imagepng( $image_out, "large.png" );
    imagedestroy( $image_in );
    imagedestroy( $image_out );
?>

<img src = "dl_button.jpg" border = "0">
<img src = "large.png" border = "0">

上記のスクリプトでは、getimagesize()関数で、指定した画像ファイルの大きさに関する情報を配列として取得し、imagecreatefrompng()関数で、画像のコピーを作成します。

そして、imagecreate()関数で、縦横2倍に拡大した画像を生成して、指定した画像の矩形部分(矩形とは、正方形と長方形の総称)を別の画像へコピーするimagecopyresized()関数で、実際に拡大した画像をコピーします。

なお、<img src = "">とは、HTMLの<img>タグにWebページ上で展開するファイルのURI(絶対パス、相対パス)を指定したもので、このsrc属性は、ブラウザに画像を表示させるためには必須の属性です。

実行結果
拡大画像
画像の大きさを取得する。
imagecreate( int width, int height );
ファイルまたはURLから新規PNG画像を作成する。
imagecreatefrompng( filename );
画像の一部の複製とサイズを変更。
imagecopyresized( dst_image, 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 );
dst_imageコピー先の画像リンクリソース。
src_imageコピー元の画像リンクリソース。
dst_xコピー先のx座標。
dst_yコピー先のy座標。
src_xコピー元のx座標。
src_yコピー元のy座標。
dst_wコピー先の幅。
dst_hコピー先の高さ。
src_wコピー元の幅。
src_hコピー元の高さ。
画像を縮小する
<?php
    $size = getimagesize( "dl_button.png" );
    $image_in = imagecreatefrompng( "dl_button.png" );
    $image_out = imagecreate( $size[ 0 ] / 2, $size[ 1 ] / 2 );

    imagecopyresized( $image_out, $image_in, 0, 0, 0, 0, $size[ 0 ] / 2, $size[ 1 ] / 2, $size[ 0 ], $size[ 1 ] );

    imagepng( $image_out, "small.png" );
    imagedestroy( $image_in );
    imagedestroy( $image_out );
?>

<img src = "dl_button.png" border = "0">
<img src = "small.png" border = "0">

上記のスクリプトでは、縦横を半分の大きさにした縮小画像を、imagecreate()関数で生成して、そこにimagecopyresized()関数で実際に縮小した画像をコピーしています。

実行結果
縮小画像