0

Web から写真を読み込んでぼかしを実行し、ぼかした画像を別のビットマップとして出力しようとしています。私のコードは次のようになります。

            URL url = new URL(myUrl);
            mNormalImage = BitmapFactory.decodeStream(url.openStream());

            final RenderScript rs = RenderScript.create( mContext );
            final Allocation input = Allocation.createFromBitmap( rs, mNormalImage, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT );
            final Allocation output = Allocation.createTyped( rs, input.getType() );
            final ScriptIntrinsicBlur script;
            script = ScriptIntrinsicBlur.create( rs, Element.U8_4( rs ) );
            script.setRadius( 3.f );
            script.setInput( input );
            script.forEach( output );
            output.copyTo( mBlurredImage );

そして、私はエラーが発生しています:

android.renderscript.RSIllegalArgumentException: 
Cannot update allocation from bitmap, sizes mismatch

なぜこうなった?

4

1 に答える 1

3

どこでmBlurredImage作成されますか?これは、そのビットマップのサイズが入力と一致しないために発生しています。次のようなものを使用して作成する必要があります。

Bitmap mBlurredImage = 
    Bitmap.createBitmap(
        mNormalImage.getWidth(),
        mNormalImage.getHeight(),
        mNormalImage.getConfig());
于 2016-05-25T02:21:33.523 に答える