zoukankan      html  css  js  c++  java
  • android简单图片处理

    网上收集一些对图片处理的代码以便以后能用到

    一、图片翻转(得到翻转180度后的图片)

    Matrix m = new Matrix();    

    m.setScale(-1, 1);    

    Bitmap newBit = Bitmap.createBitmap(bit, 0, 0, bit.getWidth(), bit.getHeight(), m,true);

    二、图片放大缩小

    Matrix m = new Matrix();   

    m.setScale(0.5f, 0.5f);//缩小为一半,缩放比例大于一放大s   

    Bitmap newBit = Bitmap.createBitmap(bit, 0, 0, bit.getWidth(), bit.getHeight(), m,true);

    三、带倒影

    //获得带倒影的图片方法

    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; }

    四、圆角图片s

    //获得圆角图片的方法

    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; }

  • 相关阅读:
    metal的gpu query
    体积雾 global fog unity 及改进
    hdr rt format对颜色的影响
    unity deferred lighting
    unity linear space时 photoshop blend的正确设置
    unity linear work flow
    一些数据 bandwidth之类
    deferred rendering with msaa
    unity 显示mipmaplevel
    【转】在C#中使用SendMessage
  • 原文地址:https://www.cnblogs.com/xiaoxiaoboke/p/2314632.html
Copyright © 2011-2022 走看看