"Android 实现图片转二进制流及二进制转字符串" Android 实现图片转二进制流及二进制转字符串是一个非常重要的知识点,在 Android 开发中经常会遇到这种需求。下面我们将详细介绍如何实现图片转二进制流及二进制转字符串。 一、图片转二进制流 在 Android 中,我们可以使用 FileInputStream 和 ByteArrayOutputStream 来实现图片转二进制流。下面是一个示例代码: ```java public static byte[] readStream(String imagepath) throws Exception { FileInputStream fs = new FileInputStream(imagepath); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while (-1 != (len = fs.read(buffer))) { outStream.write(buffer, 0, len); } outStream.close(); fs.close(); return outStream.toByteArray(); } ``` 这个方法将图片文件转换为二进制流,并返回 byte 数组。 二、二进制转字符串 在 Android 中,我们可以使用以下方法将二进制流转换为字符串: ```java public static String byte2hex(byte[] b){ StringBuffer sb = new StringBuffer(); String tmp = ""; for (int i = 0; i < b.length; i++) { tmp = Integer.toHexString(b[i] & 0XFF); if (tmp.length() == 1){ sb.append("0" + tmp); }else{ sb.append(tmp); } } return sb.toString(); } ``` 这个方法将二进制流转换为十六进制字符串。 三、图片压缩 在 Android 中,我们可以使用 Matrix 对象来压缩图片。下面是一个示例代码: ```java private Bitmap compressBitmap(Bitmap bitmap) { Matrix matrix = new Matrix(); matrix.postScale((float) 300 / bitmap.getWidth(), (float) 100 / bitmap.getHeight()); Bitmap compressBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); return compressBitmap; } ``` 这个方法将图片压缩到指定的大小。 四、上传图片 在 Android 中,我们可以使用 HttpURLConnection 或 OkHttp 等库来上传图片到服务器。下面是一个示例代码: ```java private void eleSignature() { WritePadDialog writeTabletDialog = new WritePadDialog(this, new DialogListener() { public void refreshActivity(Object object) { Bitmap mSignBitmap = (Bitmap) object; mSignBitmap = compressBitmap(mSignBitmap); saveBmp(mSignBitmap); Log.e("", "after bitmap_width:" + mSignBitmap.getWidth()); Log.e("", "after bitmap_height:" + mSignBitmap.getHeight()); File file = new File(file_name); Log.e("Jeny", "file.exists():" + file.exists()); // 上传图片到服务器 // ... } }); } ``` 这个方法将图片压缩后上传到服务器。 Android 实现图片转二进制流及二进制转字符串是一个非常重要的知识点,我们可以使用 FileInputStream、ByteArrayOutputStream、Matrix 等对象来实现图片转换和压缩,并上传到服务器。
- 粉丝: 3
- 资源: 922
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助