我试着这样做:
Bitmap bitmapOrg = BitmapFactory.decodeFile("/sdcard/"+ photoName + ".jpg");
int width = bitmapOrg.getWidth();
int height = bitmapOrg.getHeight();
Matrix matrix = new Matrix();
matrix.postRotate(90);
Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, width,
height, matrix, true);
FileOutputStream os;
try {
os = new FileOutputStream(String.format(
"/sdcard/" + photoName + "-rotate.jpg",
System.currentTimeMillis()));
resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 100, os);
旋转文件大小 > 原始文件大小,因为旋转文件分辨率 = 96 dpi,但原始文件 = 72 dpi。为什么会发生这种情况以及如何解决?
最佳答案
您可以在 FileOutputStream os;
之前添加以下行:
resizedBitmap.setDensity(bitmapOrig.getDensity());
关于android - 如何在不改变文件大小的情况下旋转位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8592934/