Cómo afilar una imagen en Android?

Quiero afinar una imagen, mi código se da a continuación:

public Bitmap RuiHuaBitmap(Bitmap bitmap) { int width, height; height = bitmap.getHeight(); width = bitmap.getWidth(); int red, green, blue; int a1, a2, a3, a4, a5, a6, a7, a8, a9; Bitmap bmpBlurred = Bitmap.createBitmap(width, height,bitmap.getConfig()); Canvas canvas = new Canvas(bmpBlurred); canvas.drawBitmap(bitmap, 0, 0, null); for (int i = 1; i < width - 1; i++) { for (int j = 1; j < height - 1; j++) { a1 = bitmap.getPixel(i - 1, j - 1); a2 = bitmap.getPixel(i - 1, j); a3 = bitmap.getPixel(i - 1, j + 1); a4 = bitmap.getPixel(i, j - 1); a5 = bitmap.getPixel(i, j); a6 = bitmap.getPixel(i, j + 1); a7 = bitmap.getPixel(i + 1, j - 1); a8 = bitmap.getPixel(i + 1, j); a9 = bitmap.getPixel(i + 1, j + 1); red = (Color.red(a1) + Color.red(a2) + Color.red(a3) + Color.red(a4) + Color.red(a6) + Color.red(a7) + Color.red(a8) + Color.red(a9)) *(-1) + Color.red(a5)*9 ; green = (Color.green(a1) + Color.green(a2) + Color.green(a3) + Color.green(a4) + Color.green(a6) + Color.green(a7) + Color.green(a8) + Color.green(a9)) *(-1) + Color.green(a5)*9 ; blue = (Color.blue(a1) + Color.blue(a2) + Color.blue(a3) + Color.blue(a4) + Color.blue(a6) + Color.blue(a7) + Color.blue(a8) + Color.blue(a9)) *(-1) + Color.blue(a5)*9 ; bmpBlurred.setPixel(i, j, Color.rgb(red, green, blue)); } } return bmpBlurred; } 

Pero no puedo obtener el efecto ideal. ¿Puede alguien dar más pistas, o decirme qué es un error en mi código?

Gracias.

Está faltando la comprobación de rango en los valores de rgb pasados ​​a Color.rgb (); Es necesario normalizar los valores rgb en el rango [0..255] antes de llamar al método Color.rgb ():

Public static int rgb (int rojo, int verde, int azul) Desde: API Nivel 1

Devuelve un color-int de los componentes rojo, verde, azul. El componente alfa es implicidad 255 (completamente opaco). Estos valores de componente deben ser [0..255], pero no se realiza ninguna comprobación de rango, por lo que si están fuera del intervalo, el color devuelto no está definido . Parámetros rojo Componente rojo [0..255] del color verde Componente verde [0..255] del color azul Componente azul [0..255] del color

Su matriz de convolución parece buena para una transformación de shapen:

  0 0 0 0 0 0 -1 -1 -1 0 0 -1 9 -1 0 0 -1 -1 -1 0 0 0 0 0 0 

Si usted piensa que su efecto es demasiado fuerte, también podría probar con:

  0 0 0 0 0 0 0 -1 0 0 0 -1 5 -1 0 0 0 -1 0 0 0 0 0 0 0 

como alternativa

  • Error de descifrado en Android 4.4
  • ¿Qué es el comando adb para enumerar todos los navegadores instalados en el dispositivo android?
  • Buenas Prácticas: Validación de Entradas (Android)
  • Infinite Scrolling Image ViewPager
  • No pasar nada a un AsyncTask en Android
  • Cómo comprobar la matriz de cadenas está vacío o Android nulo?
  • Cómo guardar una imagen de Android Processing Sketch
  • ¿Hay un equivalente TweenMax en Java
  • ¿Cuál es la mejor manera de aplicar una máscara a un EditText en Android?
  • Android: Reproductor de video como la aplicación de Dailymotion
  • Parse: ¿Cómo puedo obtener Relation de un almacén de datos local (... fromLocalDatastore ())?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.