メイン 迷える子羊の部屋【初心者専用】 setPixel32で設定した値のgetPixel32での読み込みについて | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
oblivion | Åê¹ÆNo.47744 投稿日時: 2011-7-15 19:59 |
新米 居住地: 投稿: 3
使用環境:
WinXP Flex SDK 4 |
setPixel32で設定した値のgetPixel32での読み込みについて はじめまして
ActionScript3.0のBitmapDataクラスのgetPixel32について質問があるのですが、 setPixel32で設定したuintの色情報が、設定色のアルファが低い時にgetPixel32で正しく(setしたときとまったく同じ値で)取れない問題があります。 例えばアルファが0のとき、rgbが設定されているにもかかわらずgetPixel32の結果は0になってしまいます。 0x00123456→0x0 この問題を解決する方法はなにかございますでしょうか? また、解決する方法がなかった場合ですが、 アルファが低い時問題が起こると言いましてもアルファが0xa0のときでも、 0xa0111111→0xa0101010 と正しいuintがとれません。 一見するとアルファが0xddの時はこの問題が起こらないように見えますが、どのrgbでも確実にこの問題が起こらないような閾値のアルファというものは(0xff未満で)存在するのでしょうか。 ご存知でしたら値を教えてください。 本当に使いたいのはget/setVectorメソッドなのですが、便宜のためget/setPixcel32と同じものと勝手に判断してget/setPixcel32としました。 get/setVectorメソッドがget/setPixcel32と内部的に違う挙動でget/setVectorのほうには解決策がある場合でしたらそちらでお願い致します。 よろしくお願いします。 |
oblivion | Åê¹ÆNo.47745 投稿日時: 2011-7-16 11:41 |
新米 居住地: 投稿: 3
使用環境:
WinXP Flex SDK 4 |
Re: setPixel32で設定した値のgetPixel32での読み込みについて 下記のような、
あるアルファに対してすべてのrgbでgetPixcel32とsetPixcel32の一致しなかった回数をカウントするチェックプログラムを書いてみましたが、 0xfeからもうダメそうでした・・・
また、getPixcel32ではアルファは正しく取れるようなので setPixcel32でセットしたBitmapDataを アルファはgetPixcel32で取った値を rgbはgetPixcelで取った値を 読んでみましたが同じくrgbのほうがダメそうです。 getPixcel32って32bitのuint値を得たいという目的で使うためにあると思うのですが、これでは意味がないのでは・・・? |
vader | Åê¹ÆNo.47754 投稿日時: 2011-7-19 14:37 |
常連 居住地: 東京 投稿: 76
使用環境:
MacOS10.8,FlashCS6 |
Re: setPixel32で設定した値のgetPixel32での読み込みについて oblivionさん、こんにちわ。
私の環境でテストして見ましたが、確かにおっしゃる通り正しい値がとれませんでした。ちなみに私の環境、Mac 10.6 FlashCS5では 0xa0111111→0xa0121212 となりました。 下記、Adobeのリファレンスを見てみると、getPixel32()に関しては乗算済みカラー値(英語ではpremultiplied color values)と表現されており、問題が生じる旨も記述されています。 http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/ そこで、最初の投稿で書かれていたようにget/setVector()であれば、符号なし整数(32 ビットの乗算されないピクセル値)(英語ではunsigned integers (a 32-bit unmultiplied pixel value) )と書かれていたので、試してみましたが、残念ながら結果は変わらずでした。 get/setVector()に関しては、これまで使用したことがないので、テスト方法が間違えているかもしれませんが、一応、私のテストしたコードを載せておきます。
ちょっと私程度の実力ではお手上げ状態です。お力になれずすみません。 頑張って下さい。 |
oblivion | Åê¹ÆNo.47756 投稿日時: 2011-7-20 10:23 |
新米 居住地: 投稿: 3
使用環境:
WinXP Flex SDK 4 |
Re: setPixel32で設定した値のgetPixel32での読み込みについて vaderさん、テストありがとうございます。
画像にデータを埋め込もうと考えていたのですが、1ピクセルに32ビットは無理そうですね・・・ アルファが0xFF固定の24ビットまでになってしまいますが、これで検討しようかと思います。 1ピクセル3バイトなら4ピクセルでint変数3つぶん 8ピクセルでNumber変数3つぶん 展開処理がめんどくさそうですね・・ |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |