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

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

2011-11-25 11:18 1651 查看
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;
}

}

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