2011-12-11 24 views
1

画像に透明効果が適用されているかどうかわかりました。 JavaScriptやHTML5には何か方法がありますか?私はBase64コード画像を持っています。透過情報(アルファチャンネル)を読み取る方法はありますか?たとえば、PNG-Imageを読み込んでbase64に変換し、html5キャンバスにドロップすると、透明度が有効になっているかどうかを知ることができますか? thanx alot okyo画像ファイル(base64)に透明性がある場合はどうすればいいですか?

+0

私は答えに満足していませんでしたが、あなたのアイデアのために、http://stackoverflow.com/questions/2569538/detecting-if-a-png-image-file-is-a-transparent-image – kenny

答えて

0

「html5-canvasにドロップする」と言うと、「data:」URIスキームでimage要素を使用すると仮定します。また、画像ファイルを解析するためのjavascriptコードを書かないようにしましょう。

あなたは、この擬似コードのような何かができる:画像を任意の透明または部分的に透明なピクセルを持ってい

create 2 off-screen canvases 
color one opaque white and the other opaque black 
draw the image on both of them 
call getImageData on each canvas, using the image bounds 
compare the image data 

場合は、おそらく2枚のキャンバスには、少なくとも少し異なってしまいます。 1つの例外は、画像に透明機能が有効になっているが、とにかく完全に不透明である場合です。不透明でないピクセルが非常にわずかに透明で、白または黒の背景を変更するのに十分ではない場合、別の方法があります。しかし、この技術は、透明性が目立つ画像を捕らえます。

+0

、私はそれをそのように実現しようとします!しかし、実際には私の意図は、その一部がアルファチャンネルの表現であることを理解するためにbase64文字列を使用することでした!例えばBase64の最後の40個の看板を読んでください。そこに透明性情報があります!これは可能でしょうか?もう一度あなたのサポートのためにおねがいします! – Okyo

+0

簡単なチェックのためのフォーマット間には共通点がありません。サポートするファイル形式を理解するためのコードを記述する必要があります。例えば、http://www.libpng.org/pub/png/spec/。アルファサポート情報にすばやくアクセスするために、いくつかのフォーマットをショートカットすることは可能かもしれませんが、それでもすべてを行うには時間がかかるとは思えません。 –

関連する問題