返回顶部
首页 > 资讯 > 移动开发 >Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子
  • 562
分享到

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

类型转换图像处理Android 2022-06-06 10:06:44 562人浏览 八月长安
摘要

1.放大缩小图片 代码如下:public static Bitmap zoomBitmap(Bitmap bitmap,int w,int h){  &n

1.放大缩小图片

代码如下:
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.获得圆角图片的方法

代码如下:
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.获得带倒影的图片方法

代码如下:
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

代码如下:
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;
}

您可能感兴趣的文章:PHP实现对png图像进行缩放的方法(支持透明背景)C#数字图像处理之图像缩放的方法Android开发之图形图像与动画(二)Animation实现图像的渐变/缩放/位移/旋转js 获取图像缩放后的实际宽高,位置等信息


--结束END--

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

本文链接: https://lsjlt.com/news/27656.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作