我就废话不多说了,还是直接看代码吧
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();
}
// 二进制转字符串
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();
}
补充知识:图片(bitmap)转化为byte[],并上传到服务器
压缩为3:1bitmap
/**
* 压缩bitmap
*
* @param bitmap
* @return
*/
private Bitmap compressBitmap(Bitmap bitmap) {
// 创建操作图片用的matrix对象
Matrix matrix = new Matrix();
matrix.postScale((float) 300 / bitmap.getWidth(),
(float) 100 / bitmap.getHeight());
Log.e("", "bitmap_width" + bitmap.getWidth());
Log.e("", "bitmap_height" + bitmap.getHeight());
Bitmap compressBitmap = Bitmap.createBitmap(bitmap, 0, 0,
bitmap.getWidth(), bitmap.getHeight(), matrix, true);
return compressBitmap;
}
上传压缩后的bitmap
private void eleSignature() {
WritePadDialog writeTabletDialog = new WritePadDialog(
this, new DialogListener() {
public void refreshActivity(Object object) {
Bitmap mSignBitmap = (Bitmap) object;
mSignBitmap = compressBitmap(mSignBitmap);
// Bitmap newsrcImage = mSignBitmap.copy(Bitmap.Config.RGB_565, true);
saveBmp(mSignBitmap);
Log.e("", "after bitmap_width:" + mSignBitmap.getWidth());
Log.e("", "after bitmap_height:" + mSignBitmap.getHeight());
File file =