第3引数の中でupsize()を呼べば、サイズが大きくなることを無視することができます。resizeCanvas()例えば、画像の内容はそのままで画像のキャンバス・サイズを変更したい場合です。元画像は以下になります。true);※追加された部分は透過になります。fit()例えば、単純なリサイズではなく、画像の中身が歪まないように150×100ピクセルの画像がつくりたい場合です。$height);実際の画像は以下になります。左が元画像(256×256ピクセル)、右がサイズ変更した画像(150×100ピクセル)です。fit()が行う手順は以下になります。$width:$heightの比率で画像を切り抜くサイズ変更ちなみに$heightは省略することができて、その場合は、$widthも$heightもその指定した長さになります。100x100になるただし、もし元の画像が小さい場合は画像が大きくなってぼやけてしまうことになります。これを防ぐ(つまり、そのままのサイズにしておく)ためにはupsize()を使いましょう。大きくなるのを防止});左がupsize()を使わなかった場合、右が使った場合です。第4引数ではどこを基準にして切り抜くかを指定することができ、例えば右下を基準として切り抜く場合は以下のようになります。'bottom-right');左が元画像で、右がサイズ変更した画像です。指定できる基準位置は以下の9つです。256ピクセルの画像の横幅を100ピクセルに変更したい場合です。左が元画像、右がサイズ変更した画像です。➜ただし、このままでは元画像の方が小さい場合でも必ずサイズ変更してしまいます。なってしまうと画像がぼやけてしますことになります。そこで、もしサイズが元よりも大きくなってしまうことを防ぐためにupsize()を使うこともできます。rotate()例えば、右に45度回転させたい場合です。直感的には時計回りですが、半時計回りが基準になっています。第2引数に色を指定すると、回転で背景を塗りつぶすことができます。insert()例えば、以下の海の写真に笑顔画像を合成してみましょう。実行結果はこうなります。第2、3、4引数で挿入する位置を指定することもできます。$y);指定できる$positionは以下の9つです。実行結果はこうなります。数値が大きいほどモザイク処理がきつくなる実際に保存した画像です。左が5で、右が10でモザイク処理した画像です。gamma()$img->gamma(2.5);左が元画像、右がガンマ補正した画像です。greyscale()$img->greyscale();左が元画像、右がグレースケール化した画像です。invert()$img->invert();左が元画像、右が色を反転させた画像です。limitColors()例えば、利用する色数を減らしてファイルサイズを減らしたい場合です。左が元画像、右が色数を3色に変更した画像です。➜なお、第2引数には透過させたい色を指定することができます。'#ffffff');以下は元画像の白い部分が透過になっています。mask()例えば、以下のマスク画像(透過なし)を笑顔画像にかけたい場合です。storage_path('app/images/mask.png');$img->mask($mask_path);実際に保存した画像です。第2引数をtrueにすると実際の透過部分をつかってアルファマスクをかけることもできます。true);以下は透過部分を含んだマスク画像です。(白い部分が透過部分)実行した結果はこうなります。上からグラデーションで透過しているので、笑顔画像も以下のようになります。0〜100なお、透過の度合いは以下のようになります。透過なし実際に透過70で保存した画像です。trim()例えば、周りの白い部分を削って画像を小さくしたい場合です。元画像は以下になります。周りの部分を除去トリムする基準を指定する第1引数でトリムする基準となる場所を指定することができます。$img->trim('bottom-right');指定できるのは以下の3つです。どの部分をトリムするか指定することもできます。次の例は、上と下だけトリムするコードです。'bottom']);トリムする許容範囲を指定するどれだけ似た色を許容してトリムするかを指定します。30);画像を描画する線や円を描画する方法です。ちなみに、今回の環境ではGDよりImageMagickの方が綺麗な画像を作成することができました。ImageMagickを使いたい場合は、ImageMagickを使うを参照してください。縦60ピクセルの画像をつくるには以下のようにします。60);また、第3引数には色を指定することができて、例えば赤で塗りつぶした画像にしたい場合は以下のようにします。実際にこの画像を保存したものが以下になります。中心のY座標をcircle()に指定します。background()円を特定の色で塗りつぶすにはbackground()を使います。白で塗りつぶす});実際に保存した画像です。左がGD、右がImageMagickです。border()また、塗りつぶさずに円を線で描くこともできます。その場合はborder()を使いましょう。線の太さ「3」});左がGD、右がImageMagickです。中心のY座標をcircle()に指定します。$draw->background('#ffffff');});実際に保存した画像です。左がGD、右がImageMagickです。border()また、塗りつぶさずに楕円を線で描くこともできます。その場合はborder()を使いましょう。線の太さ「3」});左がGD、右がImageMagickです。fill()例えば、空の画像を赤で塗りつぶしたい場合です。赤く塗りつぶすあるデザイン画像の特定の場所を指定して塗りつぶす例えば、以下の画像の周りの白い部分を赤で塗りつぶしたい場合です。この場合は、塗りつぶしたい色がある場所をX,Y座標で指定する必要があります。連続する(10,10)と同じ色を赤にする実行結果はこうなります。60ピクセルの黄色い画像に左上から右下に向かって赤い線を引きたい場合です。線の色は赤});実際に保存した画像です。左がGD、右がImageMagickです。ImageMagickを使っている場合は、線の太さを指定することもできます。$draw->width(5);});実際に保存した画像です。rectangle()例えば、以下のような条件の長方形を描画したい場合です。線});実際に保存した画像です。左がGD、右がImageMagickです。線});実際に保存した画像です。左がGD、右がImageMagickです。text()画像内にテキストを描画します。フォントさえきちんと設定していれば日本語も描画できます。回転(フォントが指定されていないと無視されます。)});実際に保存した画像です。30)に白い点を描画したい場合です。30);実際に保存した画像です。見えにくいですが、一点だけ白くなっています。filesize()画像のファイルサイズ(データ容量)を取得するにはfilesize()を使います。返ってくる数値はバイト数です。目で見て分かりやすい表記にしたいなら以下のような関数を利用するといいでしょう。内部的にはfinfo_file()が使われた結果を元にしています。pickColor()例えば、X,Y座標(10,10)の色を取得したい場合です。$y);なお、第3引数では取得する色の形式を指定することもできます。指定できる形式は以下の5つです。