PHPで角丸長方形を描く

Pocket

PHPを使って角が丸い長方形、いわゆる角丸長方形を描きたいのですが、どうすればよいでしょうか。
PHPには長方形を描くためのImageRectangleという関数がありますが、角丸長方形を描く関数が見当たりません。
そこで作ってみました。

function ImageRoundedRectangle($image, $x1, $y1, $x2, $y2, $r, $color){
  ImageLine($image, $x1 + $r, $y1, $x2 - $r, $y1, $color);
  ImageLine($image, $x1 + $r, $y2, $x2 - $r, $y2, $color);
  ImageLine($image, $x1, $y1 + $r, $x1, $y2 - $r, $color);
  ImageLine($image, $x2, $y1 + $r, $x2, $y2 - $r, $color);
  ImageArc($image, $x1 + $r, $y1 + $r, $r * 2, $r * 2, 180, 270, $color);
  ImageArc($image, $x2 - $r, $y1 + $r, $r * 2, $r * 2, 270, 360, $color);
  ImageArc($image, $x1 + $r, $y2 - $r, $r * 2, $r * 2, 90, 180, $color);
  ImageArc($image, $x2 - $r, $y2 - $r, $r * 2, $r * 2, 0, 90, $color);
}

使い方はImageRectangleと同じです。
$x1と$y1は長方形の左上の座標です。$x2と$y2は右上の座標です。
角丸長方形は角を円弧で描くのでその半径を$rとします。

imageroundedrectangle

[ 2014年11月1日 | カテゴリー: PHP | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報