C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: PHPで、パターンを指定して塗りつぶしたい


(過去ログ 104 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■62216 / inTopicNo.1)  PHPで、パターンを指定して塗りつぶしたい
  
□投稿者/ けんた (1回)-(2011/09/28(Wed) 17:54:38)

分類:[その他の言語] 

PHPでGD関数を使って図形描いたりしてます。
んで、ある領域を塗りつぶす際に、.NETで言うところのHatchBrushで塗りつぶすような、あるパターンで塗りつぶしたいです。
.NETのBrushに相当するクラスなんか無いのは分かってますが、パターンで塗りつぶしたい場合、PHPではどうやったら実現できますか?
さらに、グラデーションで塗りつぶすとかはどうでしょう?

どなたか、気が向いたら教えて下さい。
よろしくお願いします。
PHPのバージョンは5.2.5です。


# 先ほど同じ内容で投稿したのですが、なぜか投稿できていなかったので、再度投稿しています。
# 時間が経ったら表示される...とか無いですよね?
引用返信 編集キー/
■62220 / inTopicNo.2)  Re[1]: PHPで、パターンを指定して塗りつぶしたい
□投稿者/ やじゅ (1953回)-(2011/09/28(Wed) 18:43:34)
やじゅ さんの Web サイト
No62216 (けんた さん) に返信
> PHPでGD関数を使って図形描いたりしてます。
> んで、ある領域を塗りつぶす際に、.NETで言うところのHatchBrushで塗りつぶすような、あるパターンで塗りつぶしたいです。

setTileでパターンを読込むといいんでないかな。
◆ 塗りつぶしパターン
$tile = newFromPng GD::Image('pattern.png');
$img->setTile($tile);
$img->filledRectangle(0, 0, 99, 99, gdTiled);
http://www.tohoho-web.com/perl/pict.htm

.NET いろいろな模様(ハッチスタイル)で塗りつぶす
http://dobon.net/vb/dotnet/graphics/hatchbrush.html
引用返信 編集キー/
■62223 / inTopicNo.3)  Re[2]: PHPで、パターンを指定して塗りつぶしたい
□投稿者/ けんた (2回)-(2011/09/28(Wed) 22:25:51)
No62220 (やじゅ さん) に返信
> setTileでパターンを読込むといいんでないかな。
> ◆ 塗りつぶしパターン
> $tile = newFromPng GD::Image('pattern.png');
> $img->setTile($tile);
> $img->filledRectangle(0, 0, 99, 99, gdTiled);
> http://www.tohoho-web.com/perl/pict.htm

Perlの情報を提示されて少々あせりましたが、setTileという手続き名を元に調べると良さそうな情報を見つけました。
http://jp2.php.net/manual/ja/function.imagesettile.php
本家のマニュアルじゃないですか...、ただ単に調べ方が悪かったですね。すみませんでした。
解決できそうです。ありがとうございました。

画像をファイルから読み込んで(もしくは作って)、その画像を使ってimagefilledrectangleで塗りつぶすみたいですね。
.NETのように背景色と前景色を指定させようと思うと、パターンを画像ファイルとして持っとくのは無理っぽいですね。
 1. 色を指定させる
 2. パターンとなる小さな画像を生成
 3. 2で作った画像を使って塗りつぶし
みたいな手順になりそう...、ですね。

ということで、やじゅ様、ありがとうございました〜。

解決済み
引用返信 編集キー/
■62224 / inTopicNo.4)  Re[3]: PHPで、パターンを指定して塗りつぶしたい
□投稿者/ けんた (3回)-(2011/09/28(Wed) 22:29:58)
あ、蛇足ですが...

.NETのHatchStyleで得られるパターンを見てみたところ、どれも最小単位は8×8の画像みたいですね。
ほとんどのパターンは指定した2色を使っているのですが、一部のパターンはアンチエイリアスがかかるものがあった、
指定した2色から色を中間的な色を計算しているようです。
この中間色はどうやって計算しているのかなぁ...。

そんなに厳密にまねる必要はないので、アンチエイリアスはとりあえず保留にして、上の手順でやってみます。
引用返信 編集キー/
■62240 / inTopicNo.5)  Re[3]: PHPで、パターンを指定して塗りつぶしたい
□投稿者/ やじゅ (1955回)-(2011/09/29(Thu) 12:08:41)
やじゅ さんの Web サイト
No62223 (けんた さん) に返信
> Perlの情報を提示されて少々あせりましたが、setTileという手続き名を元に調べると良さそうな情報を見つけました。

おお、ごめんなさい。確か「PHP GD関数」で調べてたはずなのに、いつのまにか Perlになってたのね(^^;
でも、解決方法に辿りつけたようでなによりです。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -