目前在我正在开发的Android应用程序中,我正在循环遍历图像的像素以使其模糊.这在640x480图像上大约需要30秒.
在Android Market中浏览应用程序时,我遇到了一个包含模糊功能的应用程序,并且它们的模糊非常快(例如5秒),因此它们必须使用不同的模糊方法.
除了循环像素之外,任何人都知道更快的方法吗?
我有一个imageview,我以编程方式设置Image Resources:
int resourceId = getResources().getIdentifier("imagename", "drawable", "mypackage");
imgLock.setImageResource(resourceId);
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法来显示我的ImageView模糊图像?
有很多地方(包括here)来展示如何使用Renderscript来模糊图像,例如:
@TargetApi(VERSION_CODES.JELLY_BEAN_MR1)
public static Bitmap renderScriptBlur(Context context, Bitmap srcBitmap, @FloatRange(from = 0.0f, to = 25.0f) float radius) {
if (srcBitmap == null)
return null;
Bitmap outputBitmap = null;
RenderScript rs = null;
try {
rs = RenderScript.create(context);
outputBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(outputBitmap);
canvas.drawBitmap(srcBitmap, 0, 0, null);
Allocation overlayAlloc = Allocation.createFromBitmap(rs, outputBitmap);
ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
blur.setInput(overlayAlloc);
blur.setRadius(radius);
blur.forEach(overlayAlloc);
overlayAlloc.copyTo(outputBitmap);
return outputBitmap;
} catch (Exception ex) {
if (outputBitmap != null) …
Run Code Online (Sandbox Code Playgroud) 我是Android Renderscript的新手.我需要在RenderScript中编写卷积乘法,因为最终的应用程序将在Android上运行.数据流将成为一个图像.更具体地说,我无法使用forEach功能编写核心逻辑,尽管我可以用Java编写,但速度太慢!请帮忙!史蒂夫