[CakePHP] 画像の取り扱い

タグ :

サイト内で「画像をアップロードする」というのはよくある機能です。
ただ単に画像をアップロードするのであれば簡単にできますが、メイン表示用画像やサムネイル用画像など、それぞれの画像を用意するのはユーザーにとっては面倒くさい事です。

というわけで、今回はアップロードした画像のサイズを変更する機能をまとめてみます。

GD(Graphics Library)

PHPの画像の取り扱いはGDというライブラリを使用すれば簡単にできます。
GDはPHP4.3以降のバージョンではデフォルトの拡張機能となっています。

画像編集に必要となる関数は以下になります。

[GetImageSize]
画像の大きさを取得する関数です。
< 使い方 >
$size = GetImageSize( $srcImage );
< 引数 >
1. fileName : 情報を取得したいファイルの名前を指定
2. imageInfo : オプションで画像ファイルから何らかの拡張情報を引き出すことが可能
< 戻り値 >
通常の使い方では、以下の要素からなる配列を返します。
0 => Width : 画像の幅
1 => Height : 画像の高さ
2 => ImageType : IMAGETYPE_XXX定数の一つで、画像の形式を表す
3 => W & H : IMGタグで直接利用できる文字列「height=”y” width=”x”」
MIME => Type : MIMEタイプに一致する(“Content-type”ヘッダの転送時に利用)
[ImageCreateFromXXX]
新しい画像をファイルあるいはURLから作成します。
画像の形式(XXX)には以下の形式を使用できます。
  • GIF
  • JPEG
  • PNG
< 使い方 >
$newImage = ImageCreateFrom( $srcImage );
< 引数 >
1. fileName : 画像へのパス
< 戻り値 >
成功時 : 画像リソースID
失敗時 : False
[ImageCreateTrueColor]
TrueColorイメージを新規に作成します。
TureColorとは、コンピュータ上での色の表現方法の一つで、1つの画素について24ビットまたは32ビットの色情報を持たせる方式です。
< 使い方 >
$saveImage = ImageCreateTrueColor(
                 $newWidth,
                 $newHeight
                 );
< 引数 >
1. width : 画像の幅
2. height : 画像の高さ
< 戻り値 >
成功時 : 画像リソースID
失敗時 : False
[ImageCopyResampled]
画像の再サンプリングを行い、イメージの一部をコピー・伸縮させます。
< 使い方 >
ImageCopyResampled(
                 $saveImage, $newImage,
                 0, 0, 0, 0,
                 $newWidth, $newHeight,
                 $srcWidth, $srcHeight
                 );
< 引数 >
1. dst_image : コピー先の画像リンクリソース
2. src_image : コピー元の画像リンクリソース
3. dst_x : コピー先のx座標
4. dst_y : コピー先のy座標
5. src_x : コピー元のx座標
6. src_y : コピー元のy座標
7. dst_w : コピー先の幅
8. dst_h : コピー先の高さ
9. src_w : コピー元の幅
10. src_h : コピー元の高さ
< 戻り値 >
成功時 : True
失敗時 : False

Share

  • このエントリーをはてなブックマークに追加

Comment

コメントを残す

*がついている欄は必須項目です。

  • Twitter
  • Facebook
  • Google Plus
  • RSS Feed