图片合成

/** 

* 图片合成 

* @param bitmap 

* @return 

*/ 

private Bitmap createBitmap( Bitmap src, Bitmap watermark ) { 

if( src == null ) { 

return null; 

} 

int w = src.getWidth(); 

int h = src.getHeight(); 

int ww = watermark.getWidth(); 

int wh = watermark.getHeight(); 

//create the new blank bitmap 

Bitmap newb = Bitmap.createBitmap( w, h, Config.ARGB_8888 );//创建一个新的和SRC长度宽度一样的位图 

Canvas cv = new Canvas( newb ); 

//draw src into 

cv.drawBitmap( src, 0, 0, null );//在 0,0坐标开端画入src 

//draw watermark into 

cv.drawBitmap( watermark, w - ww + 5, h - wh + 5, null );//在src的右下角画入水印 

//save all clip  

cv.save( Canvas.ALL_SAVE_FLAG );//保存 

//store 

cv.restore();//存储 

return newb; 

} 




图片圆角 


/** 

* 图片圆角 

* @param bitmap 

* @return 

*/ 

public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) { 

Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), 

bitmap.getHeight(), Config.ARGB_8888); 

Canvas canvas = new Canvas(output); 


final int color = 0 xff424242; 

final Paint paint = new Paint(); 

final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); 

final RectF rectF = new RectF(rect); 

final float roundPx = 12; 


paint.setAntiAlias(true); 

canvas.drawARGB(0, 0, 0, 0); 

paint.setColor(color); 

canvas.drawRoundRect(rectF, roundPx, roundPx, paint); 


paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 

canvas.drawBitmap(bitmap, rect, rect, paint);  

return output; 

} 




图片缩放、翻转和扭转 




/** 

* 缩放、翻转和扭转图片 

* @param bmpOrg 

* @param rotate 

* @return 

*/ 

private android.graphics.Bitmap gerZoomRotateBitmap( 

android.graphics.Bitmap bmpOrg, int rotate) { 

// 获取图片的原始的大小 

int width = bmpOrg.getWidth(); 

int height = bmpOrg.getHeight(); 


int newWidth = 300; 

int newheight = 300; 

// 定义缩放的高和宽的比例 

float sw = ((float) newWidth) / width; 

float sh = ((float) newheight) / height; 

// 创建操纵图片的用的Matrix对象 

android.graphics.Matrix matrix = new android.graphics.Matrix(); 

// 缩放翻转图片的动作 

// sw sh的绝对值为绽放宽高的比例,sw为负数默示X标的目标翻转,sh为负数默示Y标的目标翻转 

matrix.postScale(sw, sh); 

// 扭转30* 

matrix.postRotate(rotate); 

//创建一个新的图片  

android.graphics.Bitmap resizeBitmap = android.graphics.Bitmap 

.createBitmap(bmpOrg, 0, 0, width, height, matrix, true); 

return resizeBitmap; 

}