サーバーに保存して再度取得するために、wifiまたはモバイルネットワークを介してネットワーク経由で画像を送信しています。私はそれをしましたが、カメラで撮影した画像のサイズが原因で、アプリの速度が低下しています。ギャラリーを開いてそこから写真を撮っていて、アプリから直接写真を撮っていないことを指摘してください。カメラとギャラリーから取得したwhatsappの画像が約に圧縮されていることに気付きました。100キロバイト。
現時点では、私のコードはファイルを受け取り、それをバイトに変換してから送信します。ファイルを取得してバイトに変換する方法は次のとおりです。
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();
}
}
私の質問は、送信する前に画像を圧縮するにはどうすればよいですか? また、アプリが画像を使用する場合、デバイス画面の半分しか占有しないため、画像が高いピクセル数を保持する必要はありません。
助けてくれてありがとう。