【bitmap压缩,直接得到byte【】数据 】<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
private static int KB = 1024;
public static byte[] compressByQuality(Bitmap bitmap, int maxSize) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int quality = 100;
bitmap.compress(CompressFormat.JPEG, quality, baos);
Log.e(TAG, "pic size before compress :" + baos.toByteArray().length + "byte");
while (baos.toByteArray().length / KB > maxSize) {
quality -= 10;
baos.reset();
bitmap.compress(CompressFormat.JPEG, quality, baos);
System.out.println("质量压缩到原来的" + quality + "%时大小为:" + baos.toByteArray().length + "byte");
if(quality <=0)
break;
}
Log.e(TAG, "pic size after compress : " + baos.toByteArray().length + "byte");
return baos.toByteArray();
}
【 byte【】数据 写进 通过 Socket 获得到的 DataOutputStream 】
byte[] ctos;
DataOutputStream out;
Socket clientSocket ;
clientSocket =new Socket(Ip, 端口);
out = new DataOutputStream(clientSocket.getOutputStream());
out.write(ctos);
out.flush();
【备注】
后面的socket的IO操作,自己去查找相关的资料,要是不懂得话。
这里关键在于,当你压缩之后,就直接转byte【】数据,发送出去,同样的,文件的存储,也来源byte【】数据。