2012-05-21 21 views

Respuesta

31

Encontré un excelente tutorial sobre Android Image Processing here.

public static Bitmap mark(Bitmap src, String watermark, Point location, Color color, int alpha, int size, boolean underline) { 
int w = src.getWidth(); 
int h = src.getHeight(); 
Bitmap result = Bitmap.createBitmap(w, h, src.getConfig()); 

Canvas canvas = new Canvas(result); 
canvas.drawBitmap(src, 0, 0, null); 

Paint paint = new Paint(); 
paint.setColor(color); 
paint.setAlpha(alpha); 
paint.setTextSize(size); 
paint.setAntiAlias(true); 
paint.setUnderlineText(underline); 
canvas.drawText(watermark, location.x, location.y, paint); 

return result; 
} 

Gracias a Pete Houston que comparte un tutorial tan útil sobre el procesamiento básico de imágenes.

+0

¿Puedo llamar este método dentro de otra función donde se especifica la imagen? – info

+1

Puede llamarlo en otra función. Por ejemplo, resultado de mapa de bits = marca (src, marca de agua, ubicación, color, alfa, tamaño, subrayado); – AndroidLearner

+1

El color de color param debe ser de color int, el método paint.setColor() está esperando el argumento int. Si tiene una idea mejor, por favor, compártalo con nosotros. – technik

-1

use framelayout. ponga dos imageviews dentro del framelayout y especifique la posición de la imagen de marca de agua.

+0

Gracias por la respuesta :) puede por favor comparta el código – info

4

Parece que está buscando waterrippleeffect como este. Verifica el código fuente completo. También verifique la captura de pantalla de cómo se ve el efecto.

+0

Gracias por la respuesta :) – info

16

Para otros referencia, si desea agregar el logotipo de la aplicación (que está en la carpeta (s) dibujable) en la parte superior de la utilización de la imagen siguiente método:

private Bitmap addWaterMark(Bitmap src) { 
     int w = src.getWidth(); 
     int h = src.getHeight(); 
     Bitmap result = Bitmap.createBitmap(w, h, src.getConfig()); 
     Canvas canvas = new Canvas(result); 
     canvas.drawBitmap(src, 0, 0, null); 

     Bitmap waterMark = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.logo); 
     canvas.drawBitmap(waterMark, 0, 0, null); 

     return result; 
    } 
+0

obtengo nulo del mapa de bits WaterMark, ¿por qué sería eso? – Andrea

Cuestiones relacionadas