喫茶XRAYトップページ


[11276] ピクセルの操作と重ね描画返信 削除
2017/7/16 (日) 08:05:35 Mr.XRAY
サンプル追加しました.

[G024_画像のピクセルの色変更等の操作]
http://mrxray.on.coocan.jp/Delphi/GDIPlusSamples/G024_GDIPlus_PixelsColor.htm

この記事の消しゴムツールのところに書いていますが,
ピクセルを透明色にすることと,透明色で描画することは違います.

VB だか VB.NET 系の質問のサイトでいくつか見かけたので,
もしかしたら Delphi 使いの方にもそう思っている方がいるかも知れないと.
で,書いておきました.

背景が透明色の画像を重ね描画した時,
その透明色の部分のピクセルが透明になるわけではありません.
その確認のためにも,同じページの最後の方にサンプルを追加しておきました.

[G02400] [09_画像の重ね描画の例 - 画像の貼り付け]
http://mrxray.on.coocan.jp/Delphi/GDIPlusSamples/G024_GDIPlus_PixelsColor.htm#09


[11277] Re:ピクセルの操作と重ね描画返信 削除
2017/7/16 (日) 08:19:18 Mr.XRAY
> ピクセルを透明色にすることと,透明色で描画することは違います.
>
> VB だか VB.NET 系の質問のサイトでいくつか見かけたので,


これは,表示されている画像に何か図形を透明色で塗り潰して描いたけど,
その部分が透明にならない,というような質問です.
実際には透明になっているわけですが,
その方が期待したのはピクセルを透明にしたかったようです.多分.


[11278] Re:ピクセルの操作と重ね描画返信 削除
2017/7/16 (日) 09:49:48 Mr.XRAY
> その透明色の部分のピクセルが透明になるわけではありません.
> その確認のためにも,同じページの最後の方にサンプルを追加しておきました.
>
> [G02400] [09_画像の重ね描画の例 - 画像の貼り付け]
> http://mrxray.on.coocan.jp/Delphi/GDIPlusSamples/G024_GDIPlus_PixelsColor.htm#09


透明色で描画した時に,透明色の部分のピクセルが透明になってしまったら,
↑ のようなことができないという意味です.


[11281] マルチアイコン方式でアイコン作成返信 削除
2017/7/22 (土) 08:17:16 Mr.XRAY
以下のサンプルを追加しました.

[05_マルチアイコン操作用の TKIcon でアイコン画像ファイルを作成]
http://mrxray.on.coocan.jp/Delphi/plSamples/090_Convert_TBitmapTIcon.htm#05


[11288] アイコン画像の減色とアルファ値返信 削除
2017/7/25 (火) 07:59:28 Mr.XRAY
以下の記事を追加しました.

[11_アイコン画像の減色処理における半透明ピクセルの扱い]
http://mrxray.on.coocan.jp/Delphi/plSamples/094_ConvertToMouseCursor.htm#11

ソースコードの添付はありません.
EXE は添付しています.


[11300] TImageとTGraphicControl返信 削除
2017/7/31 (月) 08:53:32 Mr.XRAY
一連のアイコン画像関係のサンプルですが,
実は結構苦労しているんです.

そのもっとも最たるものは TImage への描画です.
GDI+ のサンプルでは主に TPanel の派生クラスに描画しています.
下図のように,画像を拡大してグリッド表示するコードも,
TGraphicControl の継承クラスに描画していたものを,
記事として,サンプルとして掲載するために TImage への描画に変更しました.

ところが,TImage と TGraphicControl と挙動が違うのです.
もし,本格的に実装するのであれば,TPanel あるいは TGraphicControl
の派生コントロールに描画することをお勧めします.
TImage はどうもクセがありすきです.

何故 TImage への描画に変更したのかと言うと,
クラスは苦手だという方がいるもんですから... ウウウッ.



[11301] Re:TImageとTGraphicControl返信 削除
2017/7/31 (月) 08:59:40 Mr.XRAY
> ところが,TImage と TGraphicControl と挙動が違うのです.

ということで,ちょこちょことサンプルのコードを修正しています.
昨日も修正しています.ハイ.
既にダウンロードやコピーした方,ゴメンナサイね.


[11302] コメント行の削除返信 削除
2017/7/31 (月) 09:05:41 Mr.XRAY
それと,コード内にコメントがあるとコードが見にくいという方がいます.
確かに,VCL のソースコードにはコメントはほとんどありません.

コメントの先頭は全て // (スラッシュが 2 つ) になっています.
かなり古いサンプルだと文の末尾にもある可能性がありますが,
最近はそのようなコメントの書き方はしていません.

各々の文の先頭の空白を TrimLeft あるいは Trim で削除して,
//  を検出すれば削除できます.


[11303] 影付き文字列と影付き画像返信 削除
2017/8/2 (水) 17:50:37 Mr.XRAY
以下を追加しました.

[ G122_影付き文字列の描画と画像の Drop Shadow]
http://mrxray.on.coocan.jp/Delphi/GDIPlusSamples/G122_GDIPlus_DropShadow.htm


[11304] Re:影付き文字列と影付き画像返信 削除
2017/8/3 (木) 09:32:07 snail
▼ Mr.XRAYさん
> 以下を追加しました.
>
> [ G122_影付き文字列の描画と画像の Drop Shadow]
> http://mrxray.on.coocan.jp/Delphi/GDIPlusSamples/G122_GDIPlus_DropShadow.htm


サンプルのひよこはかわいいですね。
こんな絵が描けたらいいな。

[11305] Re2:影付き文字列と影付き画像返信 削除
2017/8/3 (木) 13:20:45 Mr.XRAY
▼ snailさん

> サンプルのひよこはかわいいですね。
> こんな絵が描けたらいいな。


うううっ (感激のうめき)
このヒヨコ,サイズ等を変えて,当サイトの記事に頻繁に登場しているんですが,
誰も何も言ってくれなかったんです.
嬉しいです.って,私が描いたんじゃないですが...


[11306] Re3:影付き文字列と影付き画像返信 削除
2017/8/4 (金) 09:30:50 snail
▼ Mr.XRAYさん
> ▼ snailさん
 
> 嬉しいです.って,私が描いたんじゃないですが...

絵心ある人ってうらやましい。かわいい絵は気分がほのぼのしてきますね。
ま、絵だけでなく歌でもプログラムでも表現方法は色々ありますが。

今思うと学校教育っていびつですよね。
入試に必要な点数だけで人間を評価、しかも点数がつけられないと
評価できないのでいいかげんな内容で点数を付ける。

物質の最小単位は原子、
ギリシャ時代は土が最小単位でしたが今は原子が正解。
645年大化の改新とか。

どちらも今の学校では×ですよね。点数だけよければ良いというのは良くないですよ。




[11310] Re:影付き文字列と影付き画像返信 削除
2017/8/6 (日) 18:57:24 Mr.XRAY
> [ G122_影付き文字列の描画と画像の Drop Shadow]
> http://mrxray.on.coocan.jp/Delphi/GDIPlusSamples/G122_GDIPlus_DropShadow.htm


やはりガウスボケじゃなくて,ガウスぼかしがないと寂しいので

(1) ガウスぼかしの関数を追加
(2) ほがし用の関数類を別ユニットにして添付
(3) それに伴い,ページの記事を再構成

しました.
ボックスぼかしのコードを頂いた stack overflow のページに,
記事を書かれた方が処理が遅いと書いていますので,測定してみました.
よくあるパターンですが,どんなコードで処理して遅かったのかは書いて
いませんけど (笑)

ビット深さ 32 のビットマップ画像
画像の読み込みと描画の時間を除いた値

               280 x 210    500 x 500
---------------------------------------------
Gaussian Blur   約 20 ms     55 - 65 ms
Box Blur        約 30 ms     67 - 80 ms
---------------------------------------------

ちなみに Delphi 2009 GDI+ Library のライブラリを使用すると,
280 x 210 で約 10 ms, 500 x 500 でも 30 ms 程度です.

gdiplus.dll の関数を使用する方法にすれば同様の処理速度にはなると追いますが,
複数の関数を読み出して設定する必要があります.
面倒そうなのでやるつもりはありません.


[11311] Re2:影付き文字列と影付き画像返信 削除
2017/8/6 (日) 19:07:58 Mr.XRAY
> ビット深さ 32 のビットマップ画像
> 画像の読み込みと描画の時間を除いた値


初期の X線CT はソフトで処理していましたが,
現在は,このような処理はハードウェアです.
ハードウェアは日々高速化していますから,益々処理速度が速くなっていきますね.

Gaussian Blur は,数学の分野で言えば今ポリューションと言います.
数値計算ではいろいろアルゴリズムが研究されていますから,
gduplus.dll 内の処理も高速化されているのではないかと思います.


INCM/CMT
Cyclamen v3.82