欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

图片处理Java工具类(缩放,圆角,倒影),java工具类,import andro

来源: javaer 分享于  点击 26661 次 点评:150

图片处理Java工具类(缩放,圆角,倒影),java工具类,import andro


import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.LinearGradient;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.PorterDuff.Mode;import android.graphics.PorterDuffXfermode;import android.graphics.Rect;import android.graphics.RectF;import android.graphics.Shader.TileMode;/** * 图片处理工具类(缩放,圆角,倒影) * */public class ImageUtils {    /**     * 图片缩放     *     * @param pBitmap     * @param pW     * @param pH     * @return     */    public static Bitmap zoomBitmap(Bitmap pBitmap, int pW, int pH) {        int _width = pBitmap.getWidth();// 获取原图的宽        int _heigth = pBitmap.getHeight();// 获取原图的高        // 获取缩放比        float _ScaleW = (float) pW / _width;        float _ScaleH = (float) pH / _heigth;        Matrix _Matrix = new Matrix();// 创建Matrix矩阵对象        _Matrix.setScale(_ScaleW, _ScaleH);// 设置宽高的缩放比        return Bitmap.createBitmap(pBitmap, 0, 0, _width, _heigth, _Matrix,                true);// 对截原图的0,0坐标到_width,_heigth的图片进行_Matrix处理    }    /**     * 图片圆角     *     * @param pBitmap     * @param pRoundpx     * @return     */    public static Bitmap RoundedCornerBitmap(Bitmap pBitmap, float pRoundpx) {        Bitmap _NewBitmap = Bitmap.createBitmap(pBitmap.getWidth(),                pBitmap.getHeight(), Config.ARGB_8888); // 创建图片画布大小        Canvas _Canvas = new Canvas(_NewBitmap); // 创建画布        _Canvas.drawARGB(0, 0, 0, 0); // 设置画布透明        Paint _Paint = new Paint(); // 创建画笔        _Paint.setAntiAlias(true); // 抗锯齿        _Paint.setColor(0xff000000);// 画笔颜色透明        // 画与原图片大小一致的圆角矩形        Rect _Rect = new Rect(0, 0, pBitmap.getWidth(), pBitmap.getHeight());        RectF _RectF = new RectF(_Rect);        _Canvas.drawRoundRect(_RectF, pRoundpx, pRoundpx, _Paint);        _Paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));// 设置下面张图片与上面张图片的交互模式        _Canvas.drawBitmap(pBitmap, _Rect, _Rect, _Paint);// 画原图到画布        return _NewBitmap;    }    /**     * 图片倒影     *     * @param pBitmap     * @return     */    public static Bitmap ReflectionImageWithOrigin(Bitmap pBitmap) {        // 创建等宽,高+高/5的画布        Bitmap _NewBitmap = Bitmap                .createBitmap(pBitmap.getWidth(),                        pBitmap.getHeight() + pBitmap.getHeight() / 5,                        Config.ARGB_8888);        Canvas _Canvas = new Canvas(_NewBitmap);        _Canvas.drawBitmap(pBitmap, 0, 0, null);// 画上原图        // 原图翻转,        Matrix _Matrix = new Matrix();        _Matrix.preScale(1, -1);        Bitmap _Bitmap = Bitmap.createBitmap(pBitmap, 0, 0, pBitmap.getWidth(),                pBitmap.getHeight(), _Matrix, true);        // 在剩余画布上画上翻转图        _Canvas.drawBitmap(_Bitmap, 0, pBitmap.getHeight(), null);        Paint _Paint = new Paint();        // 实现图片的渐变效果        LinearGradient shader = new LinearGradient(0, pBitmap.getHeight(), 0,                _NewBitmap.getHeight(), 0x70ffffff, 0x00ffffff, TileMode.CLAMP);        _Paint.setShader(shader);        _Paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));        _Canvas.drawRect(0, pBitmap.getHeight(), pBitmap.getWidth(),                _NewBitmap.getHeight(), _Paint);        return _NewBitmap;    }}
相关栏目:

用户点评