package at.favre.lib.dali.builder.processor; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v8.renderscript.Allocation; import android.support.v8.renderscript.Element; import android.support.v8.renderscript.RenderScript; import android.support.v8.renderscript.ScriptIntrinsicBlend; import at.favre.lib.dali.R; /** * Created by PatrickF on 27.05.2014. */ public class ImageOverlayProcessor implements IBitmapProcessor { private RenderScript rs; private Resources res; public ImageOverlayProcessor(RenderScript rs, Resources res) { this.rs = rs; this.res = res; } @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; } public Bitmap getBlendImage(Bitmap original) { Bitmap frost = BitmapFactory.decodeResource(res, R.drawable.frost4); return Bitmap.createScaledBitmap(frost,original.getWidth(),original.getHeight(),true); } @Override public String getProcessorTag() { return this.getClass().getSimpleName(); } }