团队博客
图片编辑
public static Bitmap handleImageEffect(Bitmap bm,float hue,float saturation,float lum){ Bitmap bmp=Bitmap.createBitmap(bm.getWidth(),bm.getHeight(),Bitmap.Config.ARGB_8888); Canvas canvas=new Canvas(bmp); Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG); ColorMatrix hueMatrix=new ColorMatrix(); hueMatrix.setRotate(0,hue); hueMatrix.setRotate(1,hue); hueMatrix.setRotate(2,hue); ColorMatrix saturationMatrix=new ColorMatrix(); saturationMatrix.setSaturation(saturation); ColorMatrix lumMatrix=new ColorMatrix(); lumMatrix.setScale(lum,lum,lum,1); ColorMatrix imageMatrix=new ColorMatrix(); imageMatrix.postConcat(hueMatrix); imageMatrix.postConcat(saturationMatrix); imageMatrix.postConcat(lumMatrix); paint.setColorFilter(new ColorMatrixColorFilter(imageMatrix)); canvas.drawBitmap(bm,0,0,paint); return bmp; }
public static Bitmap handleImageNegative(Bitmap bm){ int width=bm.getWidth(); int height=bm.getHeight(); int color; int r,g,b,a; Bitmap bmp=Bitmap.createBitmap(width,height, Bitmap.Config.ARGB_8888); int[] oldPic=new int[width*height]; int[] newPic=new int[width*height]; bm.getPixels(oldPic,0,width,0,0,width,height); for (int i=0;i<width*height;i++){ color=oldPic[i]; r= Color.red(color); g=Color.green(color); b=Color.blue(color); a=Color.alpha(color); r=255-r; g=255-g; b=255-b; if(r>255){ r=255; }else if(r<0){ r=0; } if(g>255){ g=255; }else if(g<0){ g=0; } if(b>255){ b=255; }else if(b<0){ b=0; } newPic[i]=Color.argb(a,r,g,b); } bmp.setPixels(newPic,0,width,0,0,width,height); return bmp; } public static Bitmap handleImagePixelsOldPhoto(Bitmap bm){ Bitmap bmp=Bitmap.createBitmap(bm.getWidth(), bm.getHeight(),Bitmap.Config.ARGB_8888); int width=bm.getWidth(); int height=bm.getHeight(); int color=0; int r,g,b,a,r1,g1,b1; int[] oldPic=new int[width*height]; int[] newPic=new int[width*height]; bm.getPixels(oldPic,0,width,0,0,width,height); for(int i=0;i<width*height;i++){ color=oldPic[i]; r= Color.red(color); g=Color.green(color); b=Color.blue(color); a=Color.alpha(color); r1=(int)(0.393*r+0.769*g+0.189*b); g1=(int)(0.349*r+0.686*g+0.168*b); b1=(int)(0.272*r+0.534*g+0.131*b); if(r1>255){ r1=255; }if(g1>255){ g1=255; }if(b1>255){ b1=255; } newPic[i]= Color.argb(a,r1,g1,b1); } bmp.setPixels(newPic,0,width,0,0,width,height); return bmp; } public static Bitmap handleImageRelief(Bitmap bm){ Bitmap bmp=Bitmap.createBitmap(bm.getWidth(),bm.getHeight(), Bitmap.Config.ARGB_8888); int width=bm.getWidth(); int height=bm.getHeight(); int color=0,colorBefore=0; int a,r,g,b,r1,g1,b1; int[] oldPic=new int[width*height]; int[] newPic=new int[width* height]; bm.getPixels(oldPic,0,width,0,0,width,height); for(int i=1;i<width*height;i++){ colorBefore=oldPic[i-1]; a=Color.alpha(colorBefore); r=Color.red(colorBefore); g=Color.green(colorBefore); b=Color.blue(colorBefore); color=oldPic[i]; r1=Color.red(color); g1=Color.green(color); b1=Color.blue(color); r=(r-r1+127); g=(g-g1+127); b=(b-b1+127); if(r>255){ r=255; }if(g>255){ g=255; }if(b>255){ b=255; } newPic[i]=Color.argb(a,r,g,b); } bmp.setPixels(newPic,0,width, 0,0,width,height); return bmp; } }
问题:还是老问题,单独可运行,和其他代码和一起时不行。