Android カメラを使用して画像をキャプチャしていますが、カメラは 8 MP であるため、約 4 ~ 5 MB の jpeg 画像が取得されます。そこで、次のコードを使用して 1 MB まで圧縮しようとしました。
dataにはjpegの画像が含まれ、baosはByteArrayOutputStreamタイプです。
while ( data.length > 1 * 1024 * 1024 )
{
System.gc();
Log.e(TAG,"Data size "+ (data.length/1024));
bitmapData.compress(CompressFormat.JPEG, compressionRatio, baos);
data = baos.toByteArray();
Log.e(TAG,"Data size "+ (data.length/1024));
compressionRatio -= 5 ;
}
いくつかの画像をキャプチャできますが、数枚の写真の後、アプリケーションはエラー ログでクラッシュしますOut of memory
。JPEGを圧縮するためのより良いソリューションを提供してください。
ありがとうございました