2
サイズ制限なしでイメージをアップロードするアプリケーションが必要ですが、イメージサイズが1MBになるようにコードのサイズを変更します。私は多くの方法を試しましたが、私が上記の要件のためのコードを見つけることができませんでした。かつて、私はこれを試してみましたためにイメージサイズを1MBに縮小する方法
:
public void scaleDown() {
int width = stdImageBmp.getWidth();
int height = stdImageBmp.getHeight();
Matrix matrix = new Matrix();
float scaleWidth = ((float) MAX_WIDTH)/width;
float scaleHeight = ((float) MAX_HEIGHT)/height;
matrix.postScale(scaleWidth, scaleHeight);
stdImageBmp = Bitmap.createBitmap(stdImageBmp, 0, 0, width, height, matrix, true);
File Image = new File("path");
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
//compress bmp
stdImageBmp.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
imgViewStd.setImageBitmap(stdImageBmp);
Log.d("resizedBitmap", stdImageBmp.toString());
width = stdImageBmp.getWidth();
height = stdImageBmp.getHeight();
System.out.println("imgWidth" + width);
System.out.println("imgHeight" + height);
}
の使用解像度をお勧めしますわずかに**> ** 1MB:480 x 640 x 4 = 1228800バイトです。 –
実際には480 x 640 x 3 = 921600バイト<1MB –
いいえ、実際には480 x 640 x ** 4 **:R、G、B、** A **です。それは** 4 **バイトで、3ではありません。 –