Android 图片处理

来源:互联网 发布:数据库工程师发展好吗 编辑:程序博客网 时间:2024/05/21 06:43

图片圆角:

Bitmap getRBitmap(Bitmap bitmap)

{

Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap .getHeight(), Config.ARGB_8888);

Canvas canvas = new Canvas(output);

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

 final RectF rectF = new RectF(rect);

Paint paint=new Paint();

paint.setAntiAlias(true);

 canvas.drawRoundRect(rectF, roundPx, roundPx, paint); 先画一个圆角的矩形'

 paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));这个模式是源图 放在目标图上,把目标图当作剪切的工具,留下被过滤掉的原图

 canvas.drawBitmap(bitmap, rect, rect, paint); ,这里bitmap是原图,rectf是目标

return output;

}

不明白paint.setXfermode 图片重叠模式的 可以看看 http://folksy.iteye.com/blog/1488629 很详细

 

画阴影:

public static Bitmap getShadow(Bitmap bitmap,int shadowshift,int shadow)

{

 RectF rectF;

 Bitmap newBitmap=Bitmap.createBitmap(bitmap.getWidth()+shadowshift+shadow,bitmap.getHeight()+shadowshift+shadow,Config.ARGB_8888);//要扩展偏移量

Canvas canvas=new Canvas(newBitmap); 在newBitmap上作画

 Paint paint=new Paint();

paint.setShadowLayer(shadow, -shadowshift, shadowshift, 0x7f000000); //第一个参数是阴影度 第二个参数是x,这个是原图的坐标为基础的

 rectF=new RectF(shadowshift+shadow,shadowshift,bitmap.getWidth(),bitmap.getHeight()); //需要加shadow,因为偏移量是shadowshift,如果从0开始,就覆盖了偏移量

 

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

 canvas.drawBitmap(bitmap, shadowshift+shadow, 0, null); //阴影的大小+阴影偏移量的大小

 return newBitmap;

 }

 

y坐标翻转:

Bitmap getTurnBitmap(Bitmap bitmap)

{

Camera c=new Camera();

Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap .getHeight(), Config.ARGB_8888);

Canvas canvas = new Canvas(output);

c.save();

c.rotateY(180);

c.translate(-48.0f, 48.0f, 0.0f); //xyz ,z是面对屏幕的距离 100就是缩小 200就是更小 ,越往屏幕里面值越大 这里48是下面matrix 移动后的位置 现在被我移动到(0,0)

c.getMatrix(matrix);

//pre在前,post在后

c.restore();

matrix.preTranslate(-(bitmap.getWidth()/ 2), -(bitmap.getHeight() / 2));//目的地坐标

matrix.postTranslate((bitmap.getWidth() / 2), (bitmap.getHeight()/ 2));

canvas.drawBitmap(bitmap, matrix,null);

return output;

}

原创粉丝点击