我正在通过 wifi 或移动网络通过网络发送图像以存储在服务器中并再次检索。我已经这样做了,但是由于相机拍摄的图像的大小,它使我的应用程序变慢,只是要指出我正在打开画廊并从那里拍摄照片,而不是直接从应用程序拍摄照片。我注意到从相机和图库中拍摄的来自whatsapp 的图像已被压缩到大约。100kb。
目前我的代码获取一个文件并将其转换为字节然后发送它。这是获取文件并将其转换为字节的方法。
private void toBytes(String filePath){
try{
File file = new File(filePath);
InputStream is = new BufferedInputStream(new FileInputStream(file));
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
bytes = new byte[(int) filePath.length()];
int bytes_read;
while((bytes_read = is.read(bytes, 0, bytes.length)) != -1){
buffer.write(bytes, 0, bytes_read);
}
is.close();
bytes = buffer.toByteArray();
}catch(Exception err){
Toast.makeText(getApplicationContext(), err.toString(), Toast.LENGTH_SHORT).show();
}
}
所以我的问题是我将如何在发送之前压缩我的图像?此外,我不需要图像来保留高像素数,因为当应用程序使用图像时,它只会占用设备屏幕的一半。
感谢您提供的任何帮助。