|
昨日のカウンタ: 今日のカウンタ: |
「また仮称かよ」という感じですが、まぁ、確かに現状ではサンプルアプリケーションに限りなく近い感じです。
・24bitカラー
・レイヤ数は3つ
・レイヤ合成は全部乗算(今のところ)
・ペン幅、色、濃度の変更が可能
・カラーピッカーも
というところまでサクサクと週末に作って、そのままとりあえずペンディングにしておこうかと思ったのですが、カラーピッカーのところでバグが発生して週末には間に合ってない状況です。逆にこの程度の機能と割り切ればクラスライブラリの機能の貼り合せでiPhone OSでも短期間で開発できそう。
いずれにせよ実機がないと楽しくないかも…
まぁiPhone OSの方ではNDAの関係で悩んでも表には出してきませんでしたが、Androidの方も出たばかりという事でなかなかどっこいどっこいな気がします。
(1) αチャンネルが0xffなBitmap同士のPorterDuff.Mode.MULTIPLYでの合成のαチャンネルが0xfeになる事がある?
(2) αチャンネルが0xffでないピクセルに対してgetPixel()とかgetPixels()をするとまともに色が帰ってこない。
(3) new Rect(x, y, x, y) で縦横1pixelづつのRectであると思うんだけど、空領域と判断するメソッドがあるっぽい。というかdrawBitmap()が無視するっぽい?
ペイントソフトを書いた事がある人がコーディングすれば (1) みたいな事はないと思うんですが… (3) はやりがちな気がします… というかAPI referenceに定義が明記されてない。例えばQtだとQRectのDetailed Descriptionに明記されてるし、JavaのAWTは…微妙な書き方…んー…
で、(2)については他の方も問題にされていて根本的な解決は見付けられなかったのでバグなのでしょう。もうバグ報告されているようなのですが。まぁ解決方法としてはRGB565のBitmapに描画しなおして、そこからgetPixel()すればαチャンネルがないせいか色が取れると。あー、16bitカラーになってしまいますが… 今のところカラーピッカーだけでしか使ってないので勘弁して下さい。他にも方法は考えられますが、パフォーマンスとかメモリ量を考えるとこれが無難かと。
● あー、そうそう。Pending Contractの刑は継続中ですよ。