2011-12-23 11 views
1

私のカメラから画像をキャプチャし、特定の座標でキャプチャした画像を切り抜く別の画像の中央に描画します。次のコードはクラッシュしませんが、画像が伸びているので、キャプチャされた画像が壊れています()。Androidでクロッピングした後にキャプチャされた画像が正しく伸びない

どこが間違っていますか?

メリーX'mas!

//Get the bottom image Bitmap 

Bitmap bottomImage = BitmapFactory.decodeResource(getResources(), SelectDollarActivity.selectedImageId); 

//Get the captured image Bitmap 

Bitmap capturedImage = BitmapFactory.decodeFile(CaptureImage.cImagePath) ; 

//************ CROP THE CAPTURED IMAGE ******************* 


int targetBitmapWidth = bottomImage.getWidth();  
int targetBitmapHeight = bottomImage.getHeight() ;  

//create a Bitmap with specified width & height 

Bitmap clippedBitmap = Bitmap.createBitmap(targetBitmapWidth, targetBitmapHeight, Bitmap.Config.ARGB_8888); 

//Construct a canvas with the specified bitmap to draw into. 

Canvas canvas = new Canvas(clippedBitmap); 

//************** cropping process goes HERE......... 

//Create a new rectangle with the specified coordinates 

RectF rectf = new RectF(left, top, right, bottom); 

//Create an empty path 

Path path = new Path(); 

//Add a closed oval contour to the path 

path.addOval(rectf, Path.Direction.CW); 

//Intersect the current clip with the specified path : CROPPING 

canvas.clipPath(path); 

canvas.drawBitmap(capturedImage, null, new Rect(0, 0, targetBitmapWidth, targetBitmapHeight), null); 

    //******** MERGING PROCESS *******************   

//Construct a canvas with the specified bitmap to draw into. 

Canvas combo = new Canvas(bottomImage); 

// Then draw the second on top of that 

combo.drawBitmap(clippedBitmap, 0f, 0f, null); 

// bottomImage is now a composite of the two. so, display the bottom image  


//************** DISPLAY THE MERGED IMAGE **************** 

((ImageView)findViewById(R.id.billImage)).setImageBitmap(bottomImage); 
+0

画像が伸びています。それは私の問題です。 – Santhosh

+0

キャプチャした画像を楕円形に切り取って別の/下部の画像の中央に配置しています。私は下の画像の適切な位置にクロップされた画像を配置することができます。しかし、私は伸ばした楕円形のイメージを取得しています。私は間違っている? – Santhosh

+0

あなたは解決策の仲間を得ましたか?私もこの同じ問題に直面しています.pls私に返信 –

答えて

0

Documentation drawBitmapはさらに2つの引数、幅と高さを受け入れます。あなたのコードでは、

combo.drawBitmap(clippedBitmap, 0f, 0f, null); 

の位置情報しかありません。

もちろん、もう少し引数を設定する必要がありますが、動作するはずです:D

+0

いいえ。動いていない。まだ私はストレッチされたイメージを見ている – Santhosh

関連する問題