Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make glow effect around a bitmap?

Tags:

The following code is what I got so far. However, there are 2 issues:

  1. I want both inner and outer glow effects, which look similar to the Photoshop's blending options. But I only managed to make the outer glow, if I set BlurMaskFilter.Blur.INNER or other value, the whole image is blocked, instead of just edges.

  2. Despite I set "FF" as alpha value, the glow color is still very dark.

    Bitmap alpha = origin.extractAlpha(); BlurMaskFilter blurMaskFilter = new BlurMaskFilter(5, BlurMaskFilter.Blur.OUTER);  Paint paint = new Paint(); paint.setMaskFilter(blurMaskFilter); paint.setColor(0xffffffff);  Canvas canvas = new Canvas(origin); canvas.drawBitmap(alpha, 0, 0, paint);  return origin; 

alt text

like image 599
Hongbo Avatar asked Dec 02 '10 11:12

Hongbo


2 Answers

Try this, based on XGouchet's answer.

private void setBackgroundGlow(ImageView imgview, int imageicon,int r,int g,int b) {     // An added margin to the initial image     int margin = 24;     int halfMargin = margin / 2;     // the glow radius     int glowRadius = 40;      // the glow color     int glowColor = Color.rgb(r, g, b);      // The original image to use     Bitmap src = BitmapFactory.decodeResource(getResources(),imageicon);      // extract the alpha from the source image     Bitmap alpha = src.extractAlpha();      // The output bitmap (with the icon + glow)     Bitmap bmp =  Bitmap.createBitmap(src.getWidth() + margin, src.getHeight() + margin, Bitmap.Config.ARGB_8888);      // The canvas to paint on the image     Canvas canvas = new Canvas(bmp);      Paint paint = new Paint();     paint.setColor(glowColor);      // outer glow     paint.setMaskFilter(new BlurMaskFilter(glowRadius, Blur.OUTER));//For Inner glow set Blur.INNER     canvas.drawBitmap(alpha, halfMargin, halfMargin, paint);      // original icon     canvas.drawBitmap(src, halfMargin, halfMargin, null);      imgview.setImageBitmap(bmp);   } 
like image 86
Nik Avatar answered Sep 16 '22 14:09

Nik


here is the solution:

http://www.shaikhhamadali.blogspot.ro/2013/06/highlightfocusshadow-image-in-imageview.html

 public Bitmap highlightImage(Bitmap src) {         // create new bitmap, which will be painted and becomes result image         Bitmap bmOut = Bitmap.createBitmap(src.getWidth() + 96, src.getHeight() + 96, Bitmap.Config.ARGB_8888);         // setup canvas for painting         Canvas canvas = new Canvas(bmOut);         // setup default color         canvas.drawColor(0, PorterDuff.Mode.CLEAR);         // create a blur paint for capturing alpha         Paint ptBlur = new Paint();         ptBlur.setMaskFilter(new BlurMaskFilter(15, Blur.NORMAL));         int[] offsetXY = new int[2];         // capture alpha into a bitmap         Bitmap bmAlpha = src.extractAlpha(ptBlur, offsetXY);         // create a color paint         Paint ptAlphaColor = new Paint();         ptAlphaColor.setColor(0xFFFFFFFF);         // paint color for captured alpha region (bitmap)         canvas.drawBitmap(bmAlpha, offsetXY[0], offsetXY[1], ptAlphaColor);         // free memory         bmAlpha.recycle();          // paint the image source         canvas.drawBitmap(src, 0, 0, null);          // return out final image         return bmOut;     } 

this will dove your question for more image bitmap effects visit these links on blog:

www.shaikhhamadali.blogspot.com

Highlight/focus/shadow the image in ImageView Invert the Image in ImageView Gray Scale the Image in ImageView (Android) set Gamma of image in ImageView Saturation Filter Effect on image in ImageView Hue Filter Effect on image in ImageView Engraving Effect on image in ImageView Emboss Effect on image in ImageView Smooth Effect on image in ImageView Mean Removal Effect on image in ImageView Set sharpness of the image in ImageView Gaussian Blur the image(Bitmap) in ImageView Convolution Matrix for image processing Color Boost the image(Bitmap) in ImageView Set brightness of the image(increase,decrease) in ImageView B/W Contrast and Color Contrast the image in ImageView  Reducing color depth of image in ImageView Sepia-toning Effect (Photography) of image in ImageView filter color channels/ set color channels of image in ImageView Change/Replacement/Remove pixel colors in ImageView Water Mark the Image in ImageView 
like image 28
Hamad Avatar answered Sep 20 '22 14:09

Hamad