1

画像ビューに表示されている画像にぼやけた効果を作成しようとしています。ビットマップで画像を縮小してから再度拡大する(双一次フィルタリングだと思います)という例に出くわしましたが、これまでのところ、画質は非常に劣っています。滑らかなぼかしを実現しようとしています。私が現在使用しているコードは次のとおりです。

originalImage = BitmapFactory.decodeResource(getResources(),
            mImageIds[coverFlow.getSelectedItemPosition()]);

    xPos = originalImage.getWidth() / 2;

    zoomedImage = Bitmap.createBitmap(originalImage, xPos / 2, yPos, width,
            height);

    int upWidth = (int) (width * 3.5); //width is 450 >> upWidth is 1575
    int upHeight = (int) (height * 3.5); //height is 700 >> upHeight is 2450

    int downWidth = (int) ((width * 1.75)*0.06); //width is 450 >> downWidth is 787.5
    int downHeight = (int) ((height * 1.75)*0.06); //height is 700 >> downHeight is 1225

    Bitmap ScaledUp = Bitmap.createScaledBitmap(zoomedImage, upWidth,
            upHeight, true);
    Bitmap BlurredImage = Bitmap.createScaledBitmap(ScaledUp, downWidth,
            downHeight, true);

    background.startAnimation(myFadeInAnimation);
    background.setImageBitmap(BlurredImage);
    background.setFocusable(true);

誰かが何が悪いのか説明できますか?私は滑らかなぼかしを得ることができないようです、それは常に頭がおかしいです。

4

1 に答える 1

1

頭のてっぺんから、次のようなことを試してみます。

//downscale Bitmap bmp = Bitmap.createScaledBitmap(originalBitmap, originalBitmap.getWidth()/scale, originalBitmap.getHeight()/scale, true); //blur Bitmap blurred = blurAlgorithm.blur(bmp, BLUR_RADIUS); //draw the blurred image Canvas c = new Canvas(blurred); //upscale c.scale(scale, scale);

アンドロイド用の優れたブラーアルゴリズムについては、こちらをご覧ください。一般的に、そのプロジェクトには、ぼかしを適切に行う方法に関する多くの情報があります。

于 2014-03-06T15:25:36.703 に答える