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

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

2012-05-03 22:20 1386 查看
源自:/article/2678360.html

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

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