源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子

  • 时间:2020-12-25 07:52 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子
1.放大缩小图片
[u]复制代码[/u] 代码如下:
public static Bitmap zoomBitmap(Bitmap bitmap,int w,int h){            int width = bitmap.getWidth();            int height = bitmap.getHeight();            Matrix matrix = new Matrix();            float scaleWidht = ((float)w / width);            float scaleHeight = ((float)h / height);            matrix.postScale(scaleWidht, scaleHeight);            Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);            return newbmp;        }
2.获得圆角图片的方法
[u]复制代码[/u] 代码如下:
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap,float roundPx){            Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);            Canvas canvas = new Canvas(output);            final int color = 0xff424242;            final Paint paint = new Paint();            final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());            final RectF rectF = new RectF(rect);            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;        }
3.获得带倒影的图片方法
[u]复制代码[/u] 代码如下:
public static Bitmap createReflectionImageWithOrigin(Bitmap bitmap){           final int reflectionGap = 4;           int width = bitmap.getWidth();           int height = bitmap.getHeight();           Matrix matrix = new Matrix();           matrix.preScale(1, -1);           Bitmap reflectionImage = Bitmap.createBitmap(bitmap,0, height/2, width, height/2, matrix, false);           Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + height/2), Config.ARGB_8888);           Canvas canvas = new Canvas(bitmapWithReflection);           canvas.drawBitmap(bitmap, 0, 0, null);           Paint deafalutPaint = new Paint();           canvas.drawRect(0, height,width,height + reflectionGap, deafalutPaint);           canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);           Paint paint = new Paint();           LinearGradient shader = new LinearGradient(0, bitmap.getHeight(), 0,      bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.CLAMP);            paint.setShader(shader);            // Set the Transfer mode to be porter duff and destination in            paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));            // Draw a rectangle using the paint with our linear gradient            canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()                    + reflectionGap, paint);            return bitmapWithReflection;        }
4.将Drawable转化为Bitmap
[u]复制代码[/u] 代码如下:
public static Bitmap drawableToBitmap(Drawable drawable){       int width = drawable.getIntrinsicWidth();       int height = drawable.getIntrinsicHeight();       Bitmap bitmap = Bitmap.createBitmap(width, height,       drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565);       Canvas canvas = new Canvas(bitmap);       drawable.setBounds(0,0,width,height);       drawable.draw(canvas);       return bitmap; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部