[Squeak-ja: 4541] アルファチャネルの削除?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 4541] アルファチャネルの削除?

Hiroki Horiuchi
こんばんは。

アルファチャネル付きの深さ32ビットのFormをそのままdisplayAt:すると、背景
が黒く表示されるのですが、これを白い背景で表示するにはどうすればいいので
しょうか?

よろしくお願いします。
--
堀内寛己(ほりうちひろき)
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 4542] Re: アルファチャネルの削除?

Hiroki Horiuchi
すみません、補足です。

DisplayにalphaBlendでcopyBitsというのは無しです。
--
堀内寛己(ほりうちひろき)
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 4543] Re: アルファチャネルの削除?

Yoshiki Ohshima-2
At Thu, 28 Apr 2011 22:43:33 +0900,
Hiroki Horiuchi wrote:

>
> こんばんは。
>
> アルファチャネル付きの深さ32ビットのFormをそのままdisplayAt:すると、背景
> が黒く表示されるのですが、これを白い背景で表示するにはどうすればいいので
> しょうか?
>
> すみません、補足です。
>
> DisplayにalphaBlendでcopyBitsというのは無しです。
> --

  「無し」というのがなぜなのかはよくわかりませんが、combination rule
34が使えると思います。それでも、先に背景は白で塗らなくてはいけないと思
うので、もしそのFormがaFormという名前で、50@50の大きさだとするなら、

Display fill: (100@100 extent: 50@50) fillColor: Color white.
aForm displayOn: Display at: 100@100 rule: 34.

のようにするとよいのではないでしょうか。

-- Yoshiki
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 4544] Re: アルファチャネルの削除?

Hiroki Horiuchi
On 2011年04月29日 15:07, Yoshiki Ohshima wrote:

Yoshikiさん、毎度お世話になります。

> 「無し」というのがなぜなのかはよくわかりませんが、

このあいだの(SMLの)、低レベルGUIの話の延長で試していることに関係します。

もしそれが本当に意義のあることなら、いずれ説明します。

> combination rule 34が使えると思います。

これはどこに文書化されていますか? 私は0 ~ 31までしか知りませんでした。

> それでも、先に背景は白で塗らなくてはいけないと思うので、

そうですね。

> Display fill: (100@100 extent: 50@50) fillColor: Color white.

以前はこのショートカットを知らなかったので、Form>>bitsを直接操作していま
した。

> aForm displayOn: Display at: 100@100 rule: 34.

これも、(BitBlt destForm:...) copyBitsしたりして苦労していました。

助かりました。ありがとうございます。
--
堀内寛己(ほりうちひろき)

Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 4546] Re: アルファチャネルの削除?

Yoshiki Ohshima-2
At Sat, 30 Apr 2011 14:30:24 +0900,
Hiroki Horiuchi wrote:
>
> > combination rule 34が使えると思います。
>
> これはどこに文書化されていますか? 私は0 ~ 31までしか知りませんでした。

  ドキュメントということになると見た覚えはないですね。VMMakerパッケー
ジをロードするとBitBltSimulationというクラスが入りますが、そのクラス
の#initBBOpTableというメソッドにサポートされているruleの一覧があります。
それぞれの実装にはコメントがあったのでそれを見て学んだ記憶があります。

  (昔はInterpreterやBitBltSimulationも一緒に配布されていたので探すのは
結構簡単でした。低レベルのプリミティブで何が起こっているのかを知るには、
VMMakerをロードしてその中の該当するところを読むというのは結構有力な手
段だと思います。)

-- Yoshiki
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 4547] Re: アルファチャネルの削除?

Hiroki Horiuchi
こんばんは。

On 2011年05月01日 12:02, Yoshiki Ohshima wrote:

> 低レベルのプリミティブで何が起こっているのかを知るには、
> VMMakerをロードしてその中の該当するところを読むというのは結構有力な手
> 段だと思います。)

ありがとうございます。PharoにVMMakerを入れてみました。少し苦労したので、
例によって拙ブログに書いておきました。
http://19290.net/wpmu/blog/2011/05/vmmaker-on-pharo.html
--
堀内寛己(ほりうちひろき)
http://19290.net/
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 4548] Re: アルファチャネルの削除?

Hiroki Horiuchi
In reply to this post by Yoshiki Ohshima-2
On 2011年05月01日 12:02, Yoshiki Ohshima wrote:

> ドキュメントということになると見た覚えはないですね。VMMakerパッケー
> ジをロードするとBitBltSimulationというクラスが入りますが、そのクラス
> の#initBBOpTableというメソッドにサポートされているruleの一覧があります。
> それぞれの実装にはコメントがあったのでそれを見て学んだ記憶があります。

今気が付いたのですが、最近のBitBltSimulation>>initBBOpTableには、このコ
メントがありませんね。

> (昔はInterpreterやBitBltSimulationも一緒に配布されていたので探すのは
> 結構簡単でした。

SqueakNihongo6Devには最初からInterpreterもBitBltSimulationも入っていて、
このコメントも確認できます。
--
堀内寛己(ほりうちひろき)
http://19290.net/
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 4549] Re: アルファチャネルの削除?

Hiroki Horiuchi
On 2011年05月01日 21:42, Hiroki Horiuchi wrote:
>
> 今気が付いたのですが、最近のBitBltSimulation>>initBBOpTableには、このコ
> メントがありませんね。
>
勘違いでした。BitBltSimulator>>initBBOpTableを見てしまいました。
--
堀内寛己(ほりうちひろき)