【ご教示お願いします】カメラ撮影画像の重ね合わせについて

252 views
Skip to first unread message

Akiya Suzuki

unread,
Sep 24, 2013, 5:10:16 AM9/24/13
to android-g...@googlegroups.com
はじめまして。Androidアプリ開発初心者のものです。

カメラで撮影した画像を、白黒画像化および輪郭画像化(輪郭以外は透明)という2通りの処理を行って、Canvasの上に白黒画像、その上に輪郭画像を重ね合わせて、ImageViewに表示させたのですが、上のレイヤーの画像が透過しなくなり、下のレイヤーを完全に覆い隠してしまいます。ところが、res/drawableフォルダに置いた透過領域付き未処理のpngファイル2つをCanvasの上に重ね合わせると、下のレイヤーの画像が透けて見えます。どのようにしたら、処理済みの透過付き画像を透過したまま重ね合わせらるのか分かりません。
どなたかご教授お願いします。

Hirokazu Fukami

unread,
Sep 24, 2013, 5:39:21 AM9/24/13
to android-g...@googlegroups.com
こんにちはfkmです。

上にのっけているカスタムView(Canvasで描画しているView)の背景色は
透明にしてみましたか?

2013/9/24 Akiya Suzuki <akiy...@gmail.com>:
> はじめまして。Androidアプリ開発初心者のものです。
>
> カメラで撮影した画像を、白黒画像化および輪郭画像化(輪郭以外は透明)という2通りの処理を行って、Canvasの上に白黒画像、その上に輪郭画像を重ね合わせて、ImageViewに表示させたのですが、上のレイヤーの画像が透過しなくなり、下のレイヤーを完全に覆い隠してしまいます。ところが、res/drawableフォルダに置いた透過領域付き未処理のpngファイル2つをCanvasの上に重ね合わせると、下のレイヤーの画像が透けて見えます。どのようにしたら、処理済みの透過付き画像を透過したまま重ね合わせらるのか分かりません。
> どなたかご教授お願いします。
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com
> にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

Wadecom Android Dept.

unread,
Sep 24, 2013, 9:12:22 PM9/24/13
to android-g...@googlegroups.com
こんにちは、はじめまして

このあたりを読むといいかもしれません。

あるいは、
(輪郭画像が白黒2値画像なら特に)輪郭画像を書くときのPaintを
overlayPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
overlayPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DARKEN));
こんな感じにすればベースの白黒画像より「明るい」色は描かれなくなるので、あたかもアルファが有効であるかのように描画ができるかと思います。

Noritomo Suzuki

unread,
Sep 24, 2013, 9:47:35 PM9/24/13
to android-g...@googlegroups.com
Akiya Suzukiさん

はじめまして
私、鈴木規友と申します。

1.6向けのSDKの時代ですが、ある画像から一部の領域を切り抜いて他の画像に
重ね合わせたものを表示するアプリケーションを作成したことがあります。

当時は切り抜いた画像をファイルとして保存する必要がありましたので、
おっしゃられるように2つのpngファイルを重ね合わせて実現していました。

ただ、その時に使った切り抜きのテクニックが応用できないかと思い、
一つアイデアを提案させていただきます。


おっしゃられている内容から察するに、画像を2値化したBitmapオブジェクトと
エッジ検出したBitmapオブジェクトが重ね合わせの直前にお手元にあるのでは
ないでしょうか?

であれば、画像サイズのwidth * height分ループを回して、エッジ検出Bitmapから
getPixelしてエッジ色であれば2値化Bitmapにその色をsetPixcelする(でなければ
何もしない)という処理を施せばお望みのBitmapオブジェクトを作成することが
出来るように思えました。


最近のSDKでは試していません。
的外れなアドバイスであれば失礼いたしました。


以上、参考までに。

成功、お祈りいたします。


追記:
蛇足ながら、今回の現象はBitmapオブジェクトですので、アルファ値と透過色
という情報がないために発生しているのではないかと思われます。

カメラから取得された画像という事で、当然元画像にもアルファ値と透過色は
ないと思いますし。



(2013/09/24 18:10), Akiya Suzuki wrote:
はじめまして。Androidアプリ開発初心者のものです。

カメラで撮影した画像を、白黒画像化および輪郭画像化(輪郭以外は透明)という2通りの処理を行って、Canvasの上に白黒画像、その 上に輪郭画像を重ね合わせて、ImageViewに表示させたのですが、上のレイヤーの画像が透過しなくなり、下のレイヤーを完全に覆い 隠してしまいます。ところが、res/drawableフォルダに置いた透過領域付き未処理のpngファイル2つをCanvasの上に重 ね合わせると、下のレイヤーの画像が透けて見えます。どのようにしたら、処理済みの透過付き画像を透過したまま重ね合わせらるのか分かり ません。
どなたかご教授お願いします。

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、android-group- japan+un...@googlegroups.com にメールを送信します。

このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。

このメッセージにウイルス は検出されませんでした。
AVG によってチェックされました - www.avg.com
バージョン: 2012.0.2242 / ウイルスデータベース:3222/6193 - リリース日:2013/09/23


Reply all
Reply to author
Forward
0 new messages