您的位置:首页 > 移动开发 > Android开发

android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte

2012-05-11 13:56 1146 查看
/article/2678360.html

[java] view
plaincopy

package com.bingo.util;



import java.io.BufferedOutputStream;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;



import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Matrix;



public class ImageDispose {







/**

* @param 将图片内容解析成字节数组

* @param inStream

* @return byte[]

* @throws Exception

*/

public static byte[] readStream(InputStream inStream) throws Exception {

byte[] buffer = new byte[1024];

int len = -1;

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

while ((len = inStream.read(buffer)) != -1) {

outStream.write(buffer, 0, len);

}

byte[] data = outStream.toByteArray();

outStream.close();

inStream.close();

return data;



}

/**

* @param 将字节数组转换为ImageView可调用的Bitmap对象

* @param bytes

* @param opts

* @return Bitmap

*/

public static Bitmap getPicFromBytes(byte[] bytes,

BitmapFactory.Options opts) {

if (bytes != null)

if (opts != null)

return BitmapFactory.decodeByteArray(bytes, 0, bytes.length,

opts);

else

return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

return null;

}

/**

* @param 图片缩放

* @param bitmap 对象

* @param w 要缩放的宽度

* @param h 要缩放的高度

* @return newBmp 新 Bitmap对象

*/

public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h){

int width = bitmap.getWidth();

int height = bitmap.getHeight();

Matrix matrix = new Matrix();

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

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

matrix.postScale(scaleWidth, scaleHeight);

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

matrix, true);

return newBmp;

}



/**

* 把Bitmap转Byte

* @Author HEH

* @EditTime 2010-07-19 上午11:45:56

*/

public static byte[] Bitmap2Bytes(Bitmap bm){

ByteArrayOutputStream baos = new ByteArrayOutputStream();

bm.compress(Bitmap.CompressFormat.PNG, 100, baos);

return baos.toByteArray();

}

/**

* 把字节数组保存为一个文件

* @Author HEH

* @EditTime 2010-07-19 上午11:45:56

*/

public static File getFileFromBytes(byte[] b, String outputFile) {

BufferedOutputStream stream = null;

File file = null;

try {

file = new File(outputFile);

FileOutputStream fstream = new FileOutputStream(file);

stream = new BufferedOutputStream(fstream);

stream.write(b);

} catch (Exception e) {

e.printStackTrace();

} finally {

if (stream != null) {

try {

stream.close();

} catch (IOException e1) {

e1.printStackTrace();

}

}

}

return file;

}



}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐