0

私はカメラから写真を撮るアプリケーションを持っています.そして通常、この写真は長方形または正方形の形をしています.しかし、これらの写真を円形にするため、形状を正方形のみに制限しました.だから今私の問題は、この正方形の写真を幅または高さの半分を半径とする円形。切り取った部分は画像から削除する必要があります。

正方形のすべての面の中点に接する正方形から円を作るのと同じです。キャンバスやその他の組み込み描画機能の経験はありません。

ここに画像の説明を入力

たとえば、最初は正方形を持っていますが、矢印で示された部分が画像から切り取られるように、画像を円形にしたいと考えています。

注:カメラ画像を扱う必要があるため、品質は重要な要素です。ピクセル品質やその他の重要な要素に影響を与えない方法を提案してください。

4

1 に答える 1

1

目的の形状で画像をマスクすることでそれを行うことができます。詳細については、この投稿を参照してください。コード例:

Resources resources = context.getResources();
Bitmap original = BitmapFactory.decodeResource(resources,R.drawable.original);
Bitmap mask = BitmapFactory.decodeResource(resources,R.drawable.mask);
Bitmap result = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Config.ARGB_8888);
Canvas c = new Canvas(result);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
c.drawBitmap(original, 0, 0, null);
c.drawBitmap(mask, 0, 0, paint);
paint.setXfermode(null);
imageView.setImageBitmap(result);
于 2013-02-10T09:20:49.320 に答える