关闭

Bitmap的一些操作

标签: 旋转图片压缩图片保存字节数组读取字节数组
207人阅读 评论(0) 收藏 举报
分类:
/**
     * 旋转图片
     *
     * @param bmp
     * @param degrees
     * @return
     */
    public Bitmap rotateIMG(Bitmap bmp, float degrees) {
        Bitmap bitmap = null;

        Matrix matrix = new Matrix();
        matrix.setRotate(degrees);
        bitmap = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(),
                bmp.getHeight(), matrix, true);

        return bitmap;

    }


/* 压缩到指定宽高 */
    private Bitmap getBitmapFromFile(String pathName, int width, int height) {
        BitmapFactory.Options opts = new BitmapFactory.Options();
        opts.inJustDecodeBounds = true;
        Bitmap src = BitmapFactory.decodeFile(pathName, opts);
        opts.outWidth = width;
        opts.outHeight = height;
        opts.inJustDecodeBounds = false;
        src = BitmapFactory.decodeFile(pathName, opts);
        Toast.makeText(this, src.getWidth() + " " + src.getHeight(),
                Toast.LENGTH_SHORT).show();

        int w = src.getWidth();
        int h = src.getHeight();
        float scaleWidth = ((float) width) / w;
        float scaleHeight = ((float) height) / h;
        Matrix matrix = new Matrix();
        matrix.postScale(scaleWidth, scaleHeight);
        Bitmap bmp = Bitmap.createBitmap(src, 0, 0, w, h, matrix, true);
        Toast.makeText(this, bmp.getWidth() + " " + bmp.getHeight(),
                Toast.LENGTH_SHORT).show();

        return bmp;
    }



/**
     * 得到文件路径
     *
     * @return
     */
    private File getFile() {
        File file = new File("/sdcard/epd/sc.txt");
        try {
            boolean sdCardExist = Environment.getExternalStorageState().equals(
                    android.os.Environment.MEDIA_MOUNTED);
            if (sdCardExist) {
                String fileName = "epd";
                String sdPath = Environment.getExternalStorageDirectory()
                        .getPath();
                File tempFile = new File(sdPath + File.separator + fileName);
                if (!tempFile.exists()) {
                    tempFile.mkdirs();
                }
                file = new File(sdPath + File.separator + fileName
                        + File.separator + "sc" + ".txt");
                /*
                 * if (file.exists()) { file.delete(); file.createNewFile(); }
                 */
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return file;
    }


/*文件保存*/

FileOutputStream fos = null;
        try {
            File file = getFile();
            fos = new FileOutputStream(file, false);
            fos.write(buffer);
            fos.flush();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                if (fos != null)
                    fos.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }


/**
     * time:2015-07-06
     *  读取文件
     * @param path
     * @return
     */
    private byte[] getImageBytes() {
        byte[] buffer = null;
        File file = getFile();
        FileInputStream fis = null;
        try {
            fis = new FileInputStream(file);
            int lenght = fis.available();
            buffer = new byte[lenght];
            fis.read(buffer);
        } catch (FileNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                if (fis != null) {
                    fis.close();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return buffer;
    }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:78163次
    • 积分:2185
    • 等级:
    • 排名:第17285名
    • 原创:136篇
    • 转载:50篇
    • 译文:1篇
    • 评论:32条
    博客专栏
    最新评论