- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
-
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
-
*/
-
public static byte[] Bitmap2Bytes(Bitmap bm){
-
ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
-
return baos.toByteArray();
-
}
-
/**
-
* 把字节数组保存为一个文件
-
*/
-
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;
-
}
-
-
}