android 将图片内容解析成字节数组,将字节数组转换为ImageView

  1 package com.bingo.util;
2
3 import java.io.BufferedOutputStream;
4 import java.io.ByteArrayOutputStream;
5 import java.io.File;
6 import java.io.FileOutputStream;
7 import java.io.IOException;
8 import java.io.InputStream;
9
10 import android.graphics.Bitmap;
11 import android.graphics.BitmapFactory;
12 import android.graphics.Matrix;
13
14 public class ImageDispose {
15
16
17
18 /**
19 * @param 将图片内容解析成字节数组
20 * @param inStream
21 * @return byte[]
22 * @throws Exception
23 */
24 public static byte[] readStream(InputStream inStream) throws Exception {
25 byte[] buffer = new byte[1024];
26 int len = -1;
27 ByteArrayOutputStream outStream = new ByteArrayOutputStream();
28 while ((len = inStream.read(buffer)) != -1) {
29 outStream.write(buffer, 0, len);
30 }
31 byte[] data = outStream.toByteArray();
32 outStream.close();
33 inStream.close();
34 return data;
35
36 }
37 /**
38 * @param 将字节数组转换为ImageView可调用的Bitmap对象
39 * @param bytes
40 * @param opts
41 * @return Bitmap
42 */
43 public static Bitmap getPicFromBytes(byte[] bytes,
44 BitmapFactory.Options opts) {
45 if (bytes != null)
46 if (opts != null)
47 return BitmapFactory.decodeByteArray(bytes, 0, bytes.length,
48 opts);
49 else
50 return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
51 return null;
52 }
53 /**
54 * @param 图片缩放
55 * @param bitmap 对象
56 * @param w 要缩放的宽度
57 * @param h 要缩放的高度
58 * @return newBmp 新 Bitmap对象
59 */
60 public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h){
61 int width = bitmap.getWidth();
62 int height = bitmap.getHeight();
63 Matrix matrix = new Matrix();
64 float scaleWidth = ((float) w / width);
65 float scaleHeight = ((float) h / height);
66 matrix.postScale(scaleWidth, scaleHeight);
67 Bitmap newBmp = Bitmap.createBitmap(bitmap, 0, 0, width, height,
68 matrix, true);
69 return newBmp;
70 }
71
72 /**
73 * 把Bitmap转Byte
74 * @Author HEH
75 * @EditTime 2010-07-19 上午11:45:56
76 */
77 public static byte[] Bitmap2Bytes(Bitmap bm){
78 ByteArrayOutputStream baos = new ByteArrayOutputStream();
79 bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
80 return baos.toByteArray();
81 }
82 /**
83 * 把字节数组保存为一个文件
84 * @Author HEH
85 * @EditTime 2010-07-19 上午11:45:56
86 */
87 public static File getFileFromBytes(byte[] b, String outputFile) {
88 BufferedOutputStream stream = null;
89 File file = null;
90 try {
91 file = new File(outputFile);
92 FileOutputStream fstream = new FileOutputStream(file);
93 stream = new BufferedOutputStream(fstream);
94 stream.write(b);
95 } catch (Exception e) {
96 e.printStackTrace();
97 } finally {
98 if (stream != null) {
99 try {
100 stream.close();
101 } catch (IOException e1) {
102 e1.printStackTrace();
103 }
104 }
105 }
106 return file;
107 }
108
109 }


编辑器加载中...

转载于:https://www.cnblogs.com/llm-android/archive/2012/02/18/2357574.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值