数字图像处理软件-图片特效–浮雕效果(四)

最后更新于:2022-04-01 10:16:55

接上之前的数字图像处理软件系列,其实这个APP很早之前就做完了,主要是模仿了美图秀秀。之前因为太多事而耽误了,现在继续把这系列的博客写完 那么开始正文: 这次要讲的图片特效部分是:浮雕特效 老规矩,话不多说,我们来看效果图: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-28_56f8ea7b0723f.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-28_56f8ea7b27d61.jpg) 那么下面就开始讲解: 浮雕的特性我们必须得知道,浮雕不凸显细节但是凸显轮廓,这是浮雕的特性,那么轮廓有哪些特点呢?我个人认为,图片中的事物,他们的轮廓区分,基本可以靠颜色区分,也就是边界的颜色差异,当然这个方法只是可以突出局部的轮廓,但这也足够用了。所以和前几篇一样,我们需要用RGB操作,即比较RGB(凸显边界) ~~~  //浮雕     public static Bitmap  img_fudiao(Bitmap  bm){  intwidth = bm.getWidth();     int height = bm.getHeight();  Bitmap  bmp= Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);   int color,color2;        //前一个像素       int pixelsR,pixelsR2;       int pixelsG,pixelsG2;       int pixelsB,pixelsB2;        //当前像素            int[] pixels = new int[width * height]; bm.getPixels(pixels, 0, width, 0, 0, width, height);   for(int i=1;i<width*height;i++) {   color = pixels[i-1];                  //前一个像素                  pixelsR = Color.red(color);                  pixelsG = Color.green(color);                  pixelsB = Color.blue(color);                  //当前像素                  color2 = pixels[i];                  pixelsR2 = Color.red(color2);                  pixelsG2 = Color.green(color2);                  pixelsB2 = Color.blue(color2);                                    pixelsR = (pixelsR - pixelsR2 + 127);                  pixelsG = (pixelsG - pixelsG2 + 127);                  pixelsB = (pixelsB - pixelsB2 + 127);                  //均小于等于255                  if(pixelsR > 255){                      pixelsR = 255;                  }                                    if(pixelsG > 255){                      pixelsG = 255;                  }                                    if(pixelsB > 255){                      pixelsB = 255;                  }                  pixels[i] = Color.argb(255, pixelsR, pixelsG, pixelsB); }    bmp.setPixels(pixels, 0, width, 0, 0, width, height);        return bmp;     } ~~~ 在代码中可以看到,每次去相邻两项的RGB,让他们做比较,差异色大的可以基本确定是边界色,也就可以凸显轮廓 最后返回结果。
';