android 图片处理

来源:互联网 发布:国家地理 软件 频道 编辑:程序博客网 时间:2024/05/29 03:24

package cn.szbw.util;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;

public class Utils {
  
         /***
          * 加载本地图片
          * @param context:主运行函数实例
          * @param bitAdress:图片地址,一般指向R下的drawable目录
          * @return
          */

        public final Bitmap CreatImage(Context context, int bitAdress) {

                Bitmap bitmaptemp = null;

                bitmaptemp = BitmapFactory.decodeResource(context.getResources(),bitAdress);

                return bitmaptemp;

        }

//2.图片平均分割方法,将大图平均分割为N行N列,方便用户使用

        /***
         * 图片分割     
         * @param g
         * :画布
         * @param paint
         *:画笔
         * @param imgBit
         *:图片
         x
         *:X轴起点坐标
         * @param y
         *:Y轴起点坐标
         * @param w
         * :单一图片的宽度
         * @param h
         *:单一图片的高度
         * @param line
         *:第几列
         * @param row
         * :第几行
         */

        public final void cuteImage(Canvas g, Paint paint, Bitmap imgBit, int x,

                        int y, int w, int h, int line, int row) {

                g.clipRect(x, y, x + w, h + y);

                g.drawBitmap(imgBit, x - line * w, y - row * h, paint);

                g.restore();

        }

//3.图片缩放,对当前图片进行缩放处理

        /***

         * 图片的缩放方法
         * * @param bgimage
         *:源图片资源
         * @param newWidth
         *:缩放后宽度
         * @param newHeight
         *:缩放后高度
         * @return
         */

        public Bitmap zoomImage(Bitmap bgimage, int newWidth, int newHeight) {

                // 获取这个图片的宽和高

                int width = bgimage.getWidth();

                int height = bgimage.getHeight();

                // 创建操作图片用的matrix对象

                Matrix matrix = new Matrix();

                // 计算缩放率,新尺寸除原始尺寸

                float scaleWidth = ((float) newWidth) / width;

                float scaleHeight = ((float) newHeight) / height;

                // 缩放图片动作

                matrix.postScale(scaleWidth, scaleHeight);

                Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, width, height,

                                matrix, true);

                return bitmap;

        }

//4.绘制带有边框的文字,一般在游戏中起文字的美化作用

        /**
         * 绘制带有边框的文字
         * @param strMsg
         * :绘制内容
         * @param g
         *:画布
         * @param paint
         *:画笔
         * @param setx
         *:X轴起始坐标
         * @param sety
         *:Y轴的起始坐标
         * @param fg
         *:前景色
         * @param bg
         * :背景色
         */

        public void drawText(String strMsg, Canvas g, Paint paint, int setx,

                        int sety, int fg, int bg) {

                paint.setColor(bg);

                g.drawText(strMsg, setx + 1, sety, paint);

                g.drawText(strMsg, setx, sety - 1, paint);

                g.drawText(strMsg, setx, sety + 1, paint);

                g.drawText(strMsg, setx - 1, sety, paint);

                paint.setColor(fg);

                g.drawText(strMsg, setx, sety, paint);

                g.restore();

        }
}


原创粉丝点击