SQLの窓

2014年09月26日


PHP : 曲線が使い物にならない GD ライブラリ / Canvas の楕円と比較

単純な画像加工ならば、フォントも普通に使えるますし、レンタルサーバーでも普通に実装されているので利用しやすいですが、曲線が美しく無いので、最近ではブラウザ側の canvas を使ったほうがいいでしょう。





▼ 四角形
<?php
header("Content-type: image/png");
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "pragma: no-cache" );
header( "Cache-control: no-cache" );

// ******************************
// キャンバス作成( 300 x 300 )
// ******************************
$im = imagecreatetruecolor( 300, 300 );
imageantialias( $im, true );	// アンチエイリアス

// ******************************
// 色
// ******************************
$gray = imagecolorallocate( $im, 0xC0, 0xC0, 0xC0 );
$black = imagecolorallocate( $im, 0, 0, 0 );
$white = imagecolorallocate( $im, 255, 255, 255 );

// キャンバスを灰色で塗りつぶす
imagefilledrectangle ( $im ,0, 0, 300, 300, $gray );

// ******************************
// 線幅
// ******************************
imagesetthickness ( $im, 4 );

// ******************************
// BOX
// ******************************
imagerectangle( $im, 50, 50, 250, 250, $black );

// ******************************
// BOX内部塗りつぶし
// ******************************
imagefilltoborder ( $im , (50+250)/2, (50+250)/2, $black, $white );

// ******************************
// PNG 出力
// ******************************
imagepng($im);

// ******************************
// 終了処理
// ******************************
imagecolordeallocate( $im, $black );
imagecolordeallocate( $im, $white );
imagedestroy($im);

?>


▼ 楕円
<?php
header("Content-type: image/png");
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "pragma: no-cache" );
header( "Cache-control: no-cache" );

// ******************************
// キャンバス作成( 300 x 300 )
// ******************************
$im = imagecreatetruecolor( 300, 300 );
imageantialias( $im, true );	// アンチエイリアス

// ******************************
// 色
// ******************************
$gray = imagecolorallocate( $im, 0xC0, 0xC0, 0xC0 );
$black = imagecolorallocate( $im, 0, 0, 0 );
$white = imagecolorallocate( $im, 255, 255, 255 );

// キャンバスを灰色で塗りつぶす
imagefilledrectangle ( $im ,0, 0, 300, 300, $gray );

// ******************************
// 線幅
// ******************************
imagesetthickness ( $im, 4 );

// ******************************
// 楕円
// ******************************
imagefilledarc( $im, 150, 150, 200, 180, 0, 360, $black, IMG_ARC_NOFILL );

// ******************************
// 塗りつぶし
// ******************************
imagefilltoborder ( $im , 150, 150, $black, $white );

// ******************************
// PNG 出力
// ******************************
imagepng($im);

// ******************************
// 終了処理
// ******************************
imagecolordeallocate( $im, $black );
imagecolordeallocate( $im, $white );
imagedestroy($im);

?>

imagefilledarc は、円弧、塗りつぶしと全てまかなえるので使っています

関連する記事

PHP : 曲線が必要ならば ImageMagick ( 但し使えるかどうかはサーバー次第 )

canvas で楕円

<style type="text/css">
#circle {
	border: solid 1px #000000;
}
</style>
<canvas id="circle"></canvas>
<script type="text/javascript">
	var canvas = document.getElementById("circle");
	canvas.width = 400;
	canvas.height = 330;
	var draw = canvas.getContext("2d");

	draw.beginPath();
	draw.fillStyle = "#c0c0c0";
	
	draw.save();
	draw.scale( 1, 0.8 );
	draw.arc(200, 200, 150, 0, Math.PI*2, false);
	draw.fill();
	draw.restore();

	draw.lineWidth = 3;
	draw.stroke();
</script>



posted by lightbox at 2014-09-26 21:28 | PHP + WEBアプリ | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり