android.renderscript.Allocation.copyTo()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(7.6k)|赞(0)|评价(0)|浏览(202)

本文整理了Java中android.renderscript.Allocation.copyTo()方法的一些代码示例,展示了Allocation.copyTo()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Allocation.copyTo()方法的具体详情如下:
包路径:android.renderscript.Allocation
类名称:Allocation
方法名:copyTo

Allocation.copyTo介绍

暂无

代码示例

代码示例来源:origin: stackoverflow.com

//define this only once if blurring multiple times
RenderScript rs = RenderScript.create(context);

(...)
//this will blur the bitmapOriginal with a radius of 8 and save it in bitmapOriginal
final Allocation input = Allocation.createFromBitmap(rs, bitmapOriginal); //use this constructor for best performance, because it uses USAGE_SHARED mode which reuses memory
final Allocation output = Allocation.createTyped(rs, input.getType());
final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
script.setRadius(8f);
script.setInput(input);
script.forEach(output);
output.copyTo(bitmapOriginal);

代码示例来源:origin: stackoverflow.com

final RenderScript rs = RenderScript.create( myAndroidContext );
final Allocation input = Allocation.createFromBitmap( rs, photo, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT );
final Allocation output = Allocation.createTyped( rs, input.getType() );
final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create( rs, Element.U8_4( rs ) );
script.setRadius( myBlurRadius /* e.g. 3.f */ );
script.setInput( input );
script.forEach( output );
output.copyTo( photo );

代码示例来源:origin: HotBitmapGG/bilibili-android-client

/**
   * 图片高斯模糊具体实现方法
   */
  public static Bitmap blur(Context context, Bitmap image, float radius) {
    // 计算图片缩小后的长宽
    int width = Math.round(image.getWidth() * BITMAP_SCALE);
    int height = Math.round(image.getHeight() * BITMAP_SCALE);
    // 将缩小后的图片做为预渲染的图片。
    Bitmap inputBitmap = Bitmap.createScaledBitmap(image, width, height, false);
    // 创建一张渲染后的输出图片。
    Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);
    // 创建RenderScript内核对象
    RenderScript rs = RenderScript.create(context);
    // 创建一个模糊效果的RenderScript的工具对象
    ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
    // 由于RenderScript并没有使用VM来分配内存,所以需要使用Allocation类来创建和分配内存空间。
    // 创建Allocation对象的时候其实内存是空的,需要使用copyTo()将数据填充进去。
    Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap);
    Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
    // 设置渲染的模糊程度, 25f是最大模糊度
    blurScript.setRadius(radius);
    // 设置blurScript对象的输入内存
    blurScript.setInput(tmpIn);
    // 将输出数据保存到输出内存中
    blurScript.forEach(tmpOut);
    // 将数据填充到Allocation中
    tmpOut.copyTo(outputBitmap);
    return outputBitmap;
  }
}

代码示例来源:origin: cymcsg/UltimateAndroid

output.copyTo(bitmap);
return bitmap;

代码示例来源:origin: Dimezis/BlurView

/**
 * @param bitmap     bitmap to blur
 * @param blurRadius blur radius (1..25)
 * @return blurred bitmap
 */
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
@Override
public final Bitmap blur(Bitmap bitmap, float blurRadius) {
  //Allocation will use the same backing array of pixels as bitmap if created with USAGE_SHARED flag
  Allocation inAllocation = Allocation.createFromBitmap(renderScript, bitmap);
  if (!canReuseAllocation(bitmap)) {
    if (outAllocation != null) {
      outAllocation.destroy();
    }
    outAllocation = Allocation.createTyped(renderScript, inAllocation.getType());
    lastBitmapWidth = bitmap.getWidth();
    lastBitmapHeight = bitmap.getHeight();
  }
  blurScript.setRadius(blurRadius);
  blurScript.setInput(inAllocation);
  //do not use inAllocation in forEach. it will cause visual artifacts on blurred Bitmap
  blurScript.forEach(outAllocation);
  outAllocation.copyTo(bitmap);
  inAllocation.destroy();
  return bitmap;
}

代码示例来源:origin: CameraKit/blurkit-android

public Bitmap blur(Bitmap src, int radius) {
  final Allocation input = Allocation.createFromBitmap(rs, src);
  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(src);
  return src;
}

代码示例来源:origin: wasabeef/glide-transformations

blur.setRadius(radius);
 blur.forEach(output);
 output.copyTo(bitmap);
} finally {
 if (rs != null) {

代码示例来源:origin: wasabeef/Blurry

blur.setRadius(radius);
 blur.forEach(output);
 output.copyTo(bitmap);
} finally {
 if (rs != null) {

代码示例来源:origin: multidots/android-app-common-tasks

output.copyTo(bitmap);
return bitmap;

代码示例来源:origin: multidots/android-app-common-tasks

output.copyTo(bitmap);
return bitmap;

代码示例来源:origin: Blizzard-liu/AndroidUtils

output.copyTo(bitmap);
return bitmap;

代码示例来源:origin: jingle1267/android-utils

output.copyTo(bitmap);
return bitmap;

代码示例来源:origin: sunfusheng/GlideImageView

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
public static Bitmap rsBlur(Context context, Bitmap toTransform, int radius) {
  RenderScript renderScript = RenderScript.create(context);
  Allocation input = Allocation.createFromBitmap(renderScript, toTransform);
  Allocation output = Allocation.createTyped(renderScript, input.getType());
  ScriptIntrinsicBlur scriptIntrinsicBlur = ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript));
  scriptIntrinsicBlur.setInput(input);
  scriptIntrinsicBlur.setRadius(radius);
  scriptIntrinsicBlur.forEach(output);
  output.copyTo(toTransform);
  renderScript.destroy();
  return toTransform;
}

代码示例来源:origin: guolindev/giffun

blur.setRadius(radius);
 blur.forEach(output);
 output.copyTo(bitmap);
} finally {
 if (rs != null) {

代码示例来源:origin: stackoverflow.com

Bitmap inputBitmap = Bitmap.createScaledBitmap(artistImage, artistImage.getWidth(), artistImage.getHeight(), false);
Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);

RenderScript rs = RenderScript.create(context);

for (int i = 0; i < 10; i++){
  final Allocation input = Allocation.createFromBitmap(rs, outputBitmap); //use this constructor for best performance, because it uses USAGE_SHARED mode which reuses memory
  final Allocation output = Allocation.createTyped(rs, input.getType());
  final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));

  script.setRadius(25F);
  script.setInput(input);
  script.forEach(output);
  output.copyTo(outputBitmap);
}

代码示例来源:origin: stackoverflow.com

Bitmap screen = [screenshot bitmap];
RenderScript rs = RenderScript.create(context);
Allocation input = Allocation.createFromBitmap(rs, screen,
  Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT);
Allocation output = Allocation.createTyped(rs, input.getType());
ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
script.setRadius(25);
script.setInput(input);

script.forEach(output);
output.copyTo(screen);

return screen;

代码示例来源:origin: stackoverflow.com

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private static Bitmap fastblur16(Bitmap source, int radius, Context ctx) {    
  Bitmap bitmap = source.copy(source.getConfig(), true);    
  RenderScript rs = RenderScript.create(ctx);
  Allocation input = Allocation.createFromBitmap(rs, source, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT);
  Allocation output = Allocation.createTyped(rs, input.getType());
  ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
  script.setRadius(radius);
  script.setInput(input);
  script.forEach(output);
  output.copyTo(bitmap);
  return bitmap;
}

代码示例来源:origin: stackoverflow.com

Bitmap blackbitmap = Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),bitmap.getConfig());
 RenderScript mRS = RenderScript.create(TouchEmbroidery.activity);
 ScriptC_blackcheck script = new ScriptC_blackcheck(mRS);
 Allocation allocationRaster0 = Allocation.createFromBitmap(
     mRS,
     bitmap,
     Allocation.MipmapControl.MIPMAP_NONE,
     Allocation.USAGE_SCRIPT
 );
 Allocation allocationRaster1 = Allocation.createTyped(mRS, allocationRaster0.getType());
 script.forEach_root(allocationRaster0, allocationRaster1);
 allocationRaster1.copyTo(blackbitmap);

代码示例来源:origin: eventtus/photo-editor-android

protected void blur(Bitmap bitmapToBlur, Bitmap blurredBitmap) {
  mBlurInput.copyFrom(bitmapToBlur);
  mBlurScript.setInput(mBlurInput);
  mBlurScript.forEach(mBlurOutput);
  mBlurOutput.copyTo(blurredBitmap);
}

代码示例来源:origin: chuanqi305/rscnn

public float[] getData1D(){
  FeatureMap data = this;
  int size = data.getFeatureMap().getBytesSize() / 4 ;
  float[] output = new float[size];
  data.getFeatureMap().copyTo(output);
  return output;
}

相关文章