Cómo agregar un efecto de desenfoque a una imagen en el desarrollo de Android

Pregunta: ¿Cómo agregar un efecto de desenfoque a una imagen en el desarrollo de Android?

Responder :

Hola, acabo de leer tu pregunta y espero que mi respuesta te ayude, sigue estos pasos.

Crear un efecto de desenfoque en Android con RenderScript

En el procesamiento de imágenes, un efecto de desenfoque, también conocido como desenfoque gaussiano, es el resultado de desenfocar una imagen aplicando una función gaussiana. El efecto de desenfoque es ampliamente utilizado en software de gráficos. En ese tutorial, aprenderá cómo aplicar un efecto de desenfoque en Android utilizando la Biblioteca RenderScript.

1. Configure su entorno para usar RenderScript

El primer paso es configurar su entorno de desarrollo para habilitar RenderScript en su proyecto de Android. Tenga en cuenta que necesita el siguiente SDK de Android con estas API:

  • Android SDK Tools revisión 22.2 o superior
  • Android SDK Build-tools revisión 18.1.0 o superior

Debe abrir su build.gradle y luego agregar las siguientes propiedades de RenderScript:

android {
compileSdkVersion 23
buildToolsVersion “23.0.3”

defaultConfig {
minSdkVersion 9
targetSdkVersion 19

renderscriptTargetApi 18
renderscriptSupportModeEnabled true

}}

2. Implemente el efecto de desenfoque con RenderScript

Tenga en cuenta que usaremos la API de RenderScript en V8. Esta versión se encuentra en los paquetes android.support.v8.renderscript. *. Por lo tanto, asegúrese de importar las clases correctas en su código. Vamos a crear una clase BlurBuilder con un método de desenfoque estático que toma el mapa de bits para desenfocar y devuelve el mapa de bits borroso. Usaremos una constante de radio de desenfoque para definir qué radio queremos aplicar en la imagen original.

El código para la clase BlurBuilder debería ser así:

paquete com.ssaurel.blureffect;

importar android.content.Context; importar android.graphics.Bitmap; importar android.support.v8.renderscript.Allocation; importar android.support.v8.renderscript.Element; importar android.support.v8.renderscript.RenderScript; importar android.support.v8.renderscript.ScriptIntrinsicBlur;

/ ** * Creado por ssaurel el 29/09/2016. * / public class BlurBuilder {

flotante final estática privada BITMAP_SCALE = 0.6f;
flotante final estática privada BLUR_RADIUS = 15f;

desenfoque de mapa de bits estático público (contexto de contexto, imagen de mapa de bits) {
ancho int = Math.round (image.getWidth () * BITMAP_SCALE);
int height = Math.round (image.getHeight () * BITMAP_SCALE);

Bitmap inputBitmap = Bitmap.createScaledBitmap (imagen, ancho, alto, falso);
Mapa de bits outputBitmap = Bitmap.createBitmap (inputBitmap);

RenderScript rs = RenderScript.create (contexto);

ScriptIntrinsicBlur intrinsicBlur = ScriptIntrinsicBlur.create (rs, Element.U8_4 (rs));
Asignación tmpIn = Allocation.createFromBitmap (rs, inputBitmap);
Asignación tmpOut = Allocation.createFromBitmap (rs, outputBitmap);

intrinsicBlur.setRadius (BLUR_RADIUS);
intrinsicBlur.setInput (tmpIn);
intrinsicBlur.forEach (tmpOut);
tmpOut.copyTo (outputBitmap);

return outputBitmap;
}

}

Como puede ver, elegimos aplicar una escala en el mapa de bits original, pero no es obligatorio. Luego, creamos una instancia de RenderScript. La API RenderScript V8 nos ofrece una clase ScriptIntrinsicBlur que implementa un efecto de desenfoque con RenderScript. Lo usamos con la instancia de RenderScript en el parámetro. Luego, debemos asignar memoria para el mapa de bits de entrada y el mapa de bits de salida. El último paso es configurar el efecto de desenfoque aplicando el parámetro de radio.

Finalmente, obtenemos la imagen borrosa como resultado y la devolvemos.

3. Defina imágenes en su diseño principal

Para ver nuestro efecto de desenfoque en acción, necesitamos crear un diseño con dos imágenes. El primero se usará para mostrar una imagen inicial y el segundo para mostrar la imagen borrosa. Utilizaremos el siguiente diseño:

<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android"
xmlns: tools = “http://schemas.android.com/tools”
android: layout_width = “match_parent”
android: layout_height = “match_parent”
herramientas: contexto = “com.ssaurel.blureffect.MainActivity”>

<ImageView
android: layout_width = “256dp”
android: layout_height = “256dp”
android: id = “@ + id / originalImage”
android: layout_marginTop = “20dp”
android: layout_centerHorizontal = “true”
android: src = “@ drawable / logo_ssaurel” />

<ImageView
android: layout_width = “wrap_content”
android: layout_height = “wrap_content”
android: id = “@ + id / resultImage”
android: layout_below = “@ id / originalImage”
android: layout_centerHorizontal = “true” />

4. Aplicar el efecto de desenfoque

Ahora es el momento de aplicar el efecto de desenfoque en la actividad principal de nuestra aplicación:

paquete com.ssaurel.blureffect;

importar android.graphics.Bitmap; importar android.graphics.BitmapFactory; importar android.os.Bundle; importar android.support.v7.app.AppCompatActivity; importar android.widget.ImageView;

clase pública MainActivity extiende AppCompatActivity {

@Anular
vacío protegido onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);

ImageView resultImage = (ImageView) findViewById (R.id.resultImage);
Bitmap resultBmp = BlurBuilder.blur (esto, BitmapFactory.decodeResource (getResources (), R.drawable.logo_ssaurel));
resultImage.setImageBitmap (resultBmp);
}}

Obtenemos nuestra imagen inicial como un mapa de bits con el método estático decodeResource de la clase BitmapFactory, luego aplicamos el efecto de desenfoque. Finalmente, configuramos el mapa de bits borroso en la vista de imagen de resultado.

5. Resultado del efecto de desenfoque

Ahora, puede disfrutar del resultado de su efecto de desenfoque:

Espero que esto ayude . Si desea cualquier servicio de Photoshop en línea con un aspecto profesional y pocos dólares en solo un par de horas, puede contactarme en cualquier momento. Haga clic en este enlace si desea algún servicio de Photoshop

saadqazi423: diseñaré una tarjeta de presentación profesional en unas horas por $ 10 en www.fiverr.com

saadqazi423: eliminaré o cambiaré el fondo de sus fotos por $ 5 en www.fiverr.com

El efecto de desenfoque es una forma de agregar efectos PIP a su imagen. Ver esta publicación Cómo agregar efecto de desenfoque a la imagen de fondo en Android mediante programación | Whats-online.info .. Muestra paso a paso cómo agregar efecto de desenfoque a su imagen mediante programación, ajuste la intensidad del desenfoque utilizando una barra de búsqueda. Además, la publicación se muestra con un ejemplo donde puede descargarla y ejecutarla en su estudio de Android.

Para obtener un efecto de desenfoque para un ImageView (mapa de bits), puede agregar otra vista sobre él, digamos un ListView. ¡Y ahora tendrás que modificar la propiedad alfa del mismo! (es decir, la propiedad .setAlpha ())

¡Para obtener un código detallado, eche un vistazo a este ► efecto de desenfoque para el diseño de Android!

De lo contrario, también puede usar directamente las clases de Android Jar ► ¡Descargue las clases de procesamiento de imágenes de Java! ¡Y obtenga acceso directo a varios efectos de procesamiento de imágenes!

Una forma común de desenfocar una imagen muy hermosa mediante el uso de renderscript http://library. En Java, el desenfoque y la imagen fueron un problema desde el principio debido a las limitaciones de Java, pero Renderscript le ofrece una hermosa solución.

Visite aquí para ver el artículo completo: Blur Image en Android

Espero eso ayude.

Gracias,
Oodles Technologies.