androidx.renderscript.Element Java Examples

The following examples show how to use androidx.renderscript.Element. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ScriptIntrinsicConvolve3x3PostProcessor.java    From react-native-image-filter-kit with MIT License 6 votes vote down vote up
@Override
protected void processSingularRenderscript(Bitmap src, Bitmap out) {
  RenderscriptContext ctx = new RenderscriptContext(src, out, getContext());

  final ScriptIntrinsicConvolve3x3 script = ScriptIntrinsicConvolve3x3
    .create(ctx.getScript(), Element.U8_4(ctx.getScript()));

  script.setInput(ctx.getSrcAlloc());
  script.setCoefficients(mCoefficients);
  script.forEach(ctx.getOutAlloc());

  ctx.copyTo(out);

  script.destroy();
  ctx.destroy();
}
 
Example #2
Source File: ScriptIntrinsicConvolve5x5PostProcessor.java    From react-native-image-filter-kit with MIT License 6 votes vote down vote up
@Override
protected void processSingularRenderscript(Bitmap src, Bitmap out) {
  RenderscriptContext ctx = new RenderscriptContext(src, out, getContext());

  final ScriptIntrinsicConvolve5x5 script = ScriptIntrinsicConvolve5x5
    .create(ctx.getScript(), Element.U8_4(ctx.getScript()));

  script.setInput(ctx.getSrcAlloc());
  script.setCoefficients(mCoefficients);
  script.forEach(ctx.getOutAlloc());

  ctx.copyTo(out);

  script.destroy();
  ctx.destroy();
}
 
Example #3
Source File: ScriptIntrinsicBlurPostProcessor.java    From react-native-image-filter-kit with MIT License 6 votes vote down vote up
@Override
protected void processSingularRenderscript(Bitmap src, Bitmap out) {
  RenderscriptContext ctx = new RenderscriptContext(src, out, getContext());

  final ScriptIntrinsicBlur script = ScriptIntrinsicBlur
    .create(ctx.getScript(), Element.U8_4(ctx.getScript()));

  script.setInput(ctx.getSrcAlloc());
  script.setRadius(mRadius);
  script.forEach(ctx.getOutAlloc());

  ctx.copyTo(out);

  script.destroy();
  ctx.destroy();
}
 
Example #4
Source File: RenderScriptColorFilter.java    From Dali with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap manipulate(Bitmap bitmapOriginal) {
    try {
        Allocation input = Allocation.createFromBitmap(rs, bitmapOriginal);
        final Allocation output = Allocation.createTyped(rs, input.getType());
        ScriptIntrinsicColorMatrix mScript = ScriptIntrinsicColorMatrix.create(rs, Element.U8(rs));
        Matrix4f matrix4f = new Matrix4f(data);
        mScript.setColorMatrix(matrix4f);
        output.copyTo(bitmapOriginal);
    } catch (RSRuntimeException e) {
        //fallback
    }
    return bitmapOriginal;
}
 
Example #5
Source File: BlurTransformation.java    From arcusandroid with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap transform(@NonNull Bitmap source) {

    int width = Math.round(source.getWidth() * scale);
    int height = Math.round(source.getHeight() * scale);

    Bitmap inputBitmap = Bitmap.createScaledBitmap(source, width, height, false);
    Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);

    RenderScript rs = RenderScript.create(getContext());
    final ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
    final Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap);
    final Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);

    theIntrinsic.setRadius(radius);
    theIntrinsic.setInput(tmpIn);
    theIntrinsic.forEach(tmpOut);
    tmpOut.copyTo(outputBitmap);

    if (inputBitmap != source && !inputBitmap.isRecycled()) {
        inputBitmap.recycle();
    }

    if (outputBitmap != source && !source.isRecycled()) {
        source.recycle();
    }

    return outputBitmap;
}
 
Example #6
Source File: BrightnessProcessor.java    From Dali with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap manipulate(Bitmap bitmapOriginal) {
    if (brightness != 0) {
        Allocation input = Allocation.createFromBitmap(rs, bitmapOriginal);
        final Allocation output = Allocation.createTyped(rs, input.getType());
        final ScriptIntrinsicConvolve3x3 script = ScriptIntrinsicConvolve3x3.create(rs, Element.U8_4(rs));
        script.setCoefficients(createBrightnessKernel2(brightness));
        script.setInput(input);
        script.forEach(output);
        output.copyTo(bitmapOriginal);
    }
    return bitmapOriginal;
}
 
Example #7
Source File: ImageOverlayProcessor.java    From Dali with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap manipulate(Bitmap original) {
    final Allocation input1 = Allocation.createFromBitmap(rs, original);
    final Allocation input2 = Allocation.createFromBitmap(rs, getBlendImage(original));
    final ScriptIntrinsicBlend blendScript = ScriptIntrinsicBlend.create(rs, Element.U8_4(rs));
    blendScript.forEachSrcOver(input2, input1);
    input1.copyTo(original);
    return original;
}
 
Example #8
Source File: RenderScriptBox3x3Blur.java    From Dali with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap blur(int radius, Bitmap bitmapOriginal) {
    Allocation input = Allocation.createFromBitmap(rs, bitmapOriginal);
    final Allocation output = Allocation.createTyped(rs, input.getType());
    final ScriptIntrinsicConvolve3x3 script = ScriptIntrinsicConvolve3x3.create(rs, Element.U8_4(rs));
    script.setCoefficients(BlurKernels.BOX_3x3);
    for (int i = 0; i < radius; i++) {
        script.setInput(input);
        script.forEach(output);
        input = output;
    }
    output.copyTo(bitmapOriginal);
    return bitmapOriginal;
}
 
Example #9
Source File: RenderScriptGaussianBlur.java    From Dali with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap blur(int radius, Bitmap bitmapOriginal) {
    final Allocation input = Allocation.createFromBitmap(rs, bitmapOriginal);
    final Allocation output = Allocation.createTyped(rs, input.getType());
    final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
    script.setRadius(radius);
    script.setInput(input);
    script.forEach(output);
    output.copyTo(bitmapOriginal);
    return bitmapOriginal;
}
 
Example #10
Source File: RenderScriptStackBlur.java    From Dali with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap blur(int radius, Bitmap blurred) {
    int width = blurred.getWidth();
    int height = blurred.getHeight();

    ScriptC_stackblur blurScript = new ScriptC_stackblur(_rs);
    Allocation inAllocation = Allocation.createFromBitmap(_rs, blurred);

    blurScript.set_gIn(inAllocation);
    blurScript.set_width(width);
    blurScript.set_height(height);
    blurScript.set_radius(radius);

    int[] row_indices = new int[height];
    for (int i = 0; i < height; i++) {
        row_indices[i] = i;
    }

    Allocation rows = Allocation.createSized(_rs, Element.U32(_rs), height, Allocation.USAGE_SCRIPT);
    rows.copyFrom(row_indices);

    row_indices = new int[width];
    for (int i = 0; i < width; i++) {
        row_indices[i] = i;
    }

    Allocation columns = Allocation.createSized(_rs, Element.U32(_rs), width, Allocation.USAGE_SCRIPT);
    columns.copyFrom(row_indices);

    blurScript.forEach_blur_h(rows);
    blurScript.forEach_blur_v(columns);
    inAllocation.copyTo(blurred);

    return blurred;

}
 
Example #11
Source File: RenderScriptGaussian5x5Blur.java    From Dali with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap blur(int radius, Bitmap bitmapOriginal) {
    Allocation input = Allocation.createFromBitmap(rs, bitmapOriginal);
    final Allocation output = Allocation.createTyped(rs, input.getType());
    final ScriptIntrinsicConvolve5x5 script = ScriptIntrinsicConvolve5x5.create(rs, Element.U8_4(rs));
    script.setCoefficients(BlurKernels.GAUSSIAN_5x5);
    for (int i = 0; i < radius; i++) {
        script.setInput(input);
        script.forEach(output);
        input = output;
    }
    output.copyTo(bitmapOriginal);
    return bitmapOriginal;
}
 
Example #12
Source File: RenderScriptBox5x5Blur.java    From Dali with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap blur(int radius, Bitmap bitmapOriginal) {
    Allocation input = Allocation.createFromBitmap(rs, bitmapOriginal);
    final Allocation output = Allocation.createTyped(rs, input.getType());
    final ScriptIntrinsicConvolve5x5 script = ScriptIntrinsicConvolve5x5.create(rs, Element.U8_4(rs));
    script.setCoefficients(BlurKernels.BOX_5x5);
    for (int i = 0; i < radius; i++) {
        script.setInput(input);
        script.forEach(output);
        input = output;
    }
    output.copyTo(bitmapOriginal);
    return bitmapOriginal;
}
 
Example #13
Source File: BlurUtil.java    From BlurTestAndroid with Apache License 2.0 5 votes vote down vote up
public static Bitmap blendRenderScript(RenderScript rs, Bitmap bitmap1, Bitmap bitmap2) {
    if (Build.VERSION.SDK_INT >= 17) {
        final Allocation input1 = Allocation.createFromBitmap(rs, bitmap1, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT);
        final Allocation input2 = Allocation.createFromBitmap(rs, bitmap2, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT);
        final ScriptIntrinsicBlend blendScript = ScriptIntrinsicBlend.create(rs, Element.U8_4(rs));
        blendScript.forEachAdd(input1, input2);
        input2.copyTo(bitmap1);
        return bitmap1;

    } else {
        throw new IllegalStateException("Renderscript needs sdk >= 17");
    }
}
 
Example #14
Source File: RenderScriptBox3x3Blur.java    From BlurTestAndroid with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap blur(int radius, Bitmap bitmapOriginal) {
    Allocation input = Allocation.createFromBitmap(rs, bitmapOriginal);
    final Allocation output = Allocation.createTyped(rs, input.getType());
    final ScriptIntrinsicConvolve3x3 script = ScriptIntrinsicConvolve3x3.create(rs, Element.U8_4(rs));
    script.setCoefficients(BlurKernels.BOX_3x3);
    for (int i = 0; i < radius; i++) {
        script.setInput(input);
        script.forEach(output);
        input = output;
    }
    output.copyTo(bitmapOriginal);
    return bitmapOriginal;
}
 
Example #15
Source File: RenderScriptGaussianBlur.java    From BlurTestAndroid with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap blur(int radius, Bitmap bitmapOriginal) {
    final Allocation input = Allocation.createFromBitmap(rs, bitmapOriginal);
    final Allocation output = Allocation.createTyped(rs, input.getType());
    final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
    script.setRadius(radius);
    script.setInput(input);
    script.forEach(output);
    output.copyTo(bitmapOriginal);
    return bitmapOriginal;
}
 
Example #16
Source File: RenderScriptStackBlur.java    From BlurTestAndroid with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap blur(int radius, Bitmap blurred) {
    int width = blurred.getWidth();
    int height = blurred.getHeight();

    ScriptC_stackblur blurScript = new ScriptC_stackblur(_rs);
    Allocation inAllocation = Allocation.createFromBitmap(_rs, blurred);

    blurScript.set_gIn(inAllocation);
    blurScript.set_width(width);
    blurScript.set_height(height);
    blurScript.set_radius(radius);

    int[] row_indices = new int[height];
    for (int i = 0; i < height; i++) {
        row_indices[i] = i;
    }

    Allocation rows = Allocation.createSized(_rs, Element.U32(_rs), height, Allocation.USAGE_SCRIPT);
    rows.copyFrom(row_indices);

    row_indices = new int[width];
    for (int i = 0; i < width; i++) {
        row_indices[i] = i;
    }

    Allocation columns = Allocation.createSized(_rs, Element.U32(_rs), width, Allocation.USAGE_SCRIPT);
    columns.copyFrom(row_indices);

    blurScript.forEach_blur_h(rows);
    blurScript.forEach_blur_v(columns);
    inAllocation.copyTo(blurred);

    return blurred;
}
 
Example #17
Source File: RenderScriptGaussian5x5Blur.java    From BlurTestAndroid with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap blur(int radius, Bitmap bitmapOriginal) {
    Allocation input = Allocation.createFromBitmap(rs, bitmapOriginal);
    final Allocation output = Allocation.createTyped(rs, input.getType());
    final ScriptIntrinsicConvolve5x5 script = ScriptIntrinsicConvolve5x5.create(rs, Element.U8_4(rs));
    script.setCoefficients(BlurKernels.GAUSSIAN_5x5);
    for (int i = 0; i < radius; i++) {
        script.setInput(input);
        script.forEach(output);
        input = output;
    }
    output.copyTo(bitmapOriginal);
    return bitmapOriginal;
}
 
Example #18
Source File: RenderScriptBox5x5Blur.java    From BlurTestAndroid with Apache License 2.0 5 votes vote down vote up
@Override
public Bitmap blur(int radius, Bitmap bitmapOriginal) {
    Allocation input = Allocation.createFromBitmap(rs, bitmapOriginal);
    final Allocation output = Allocation.createTyped(rs, input.getType());
    final ScriptIntrinsicConvolve5x5 script = ScriptIntrinsicConvolve5x5.create(rs, Element.U8_4(rs));
    script.setCoefficients(BlurKernels.BOX_5x5);
    for (int i = 0; i < radius; i++) {
        script.setInput(input);
        script.forEach(output);
        input = output;
    }
    output.copyTo(bitmapOriginal);
    return bitmapOriginal;
}
 
Example #19
Source File: RenderScriptBlurProcessor.java    From HokoBlur with Apache License 2.0 5 votes vote down vote up
private void init(Context context) {
    Preconditions.checkNotNull(context, "Please set context for renderscript scheme, forget to set context for builder?");

    try {
        mRenderScript = RenderScript.create(context.getApplicationContext());
        mGaussianBlurScript = ScriptIntrinsicBlur.create(mRenderScript, Element.U8_4(mRenderScript));
        mBoxBlurScript = new ScriptC_BoxBlur(mRenderScript);
        mStackBlurScript = new ScriptC_StackBlur(mRenderScript);
        rsRuntimeInited = true;
    } catch (RSRuntimeException e) {
        Log.e(TAG, "Failed to init RenderScript runtime", e);
        rsRuntimeInited = false;
    }

}