如何使用ScriptIntrinsicBlend正确混合两个图像视图



这是我当前的实现,输出与预期不同的

private fun multiplyBitmap(bitmap: Bitmap?):Bitmap{
var mRenderScript = RenderScript.create(context!!)
var bitmapMultiply = mOriginalBitmap!!.copy(mOriginalBitmap!!.config,true)
var blend = ScriptIntrinsicBlend.create(mRenderScript, U8_4(mRenderScript))
var allocationIn = Allocation.createFromBitmap(mRenderScript, originalBackground)
var allocationOut = Allocation.createFromBitmap(mRenderScript,bitmapMultiply)
blend.forEachMultiply(allocationIn,allocationOut)
return bitmapMultiply
}

您的代码缺少一个关键部分。它应该在调用forEachMultiply之后调用allocationOut.copyTo(bitmapMultiply)

copyTo调用确保数据完全从GPU内存复制到支持位图的数据存储。

最新更新