如何从SD卡正确编辑图像并保存回来

时间:2011-04-15 11:45:49

标签: android image-processing bitmap

我的应用程序访问相机并拍摄照片然后将其保存回 sdcard
问题是图像在1500X2500像素和500kb大小之间相当大 我必须将图像上传到服务器 所以我想编辑图像,但我想以正确的构图编辑图像,即正确的高度:宽度比,使图像看起来不奇怪

我正在使用的代码:

FileInputStream in = new FileInputStream("/mnt/sdcard/DCIM/1302779969138");
BufferedInputStream buf = new BufferedInputStream(in)                                 
Bitmap bm = BitmapFactory.decodeStream(buf);
File isfile = new File(Environment.getExternalStorageDirectory(),"/DCIM/1302779969138");
FileOutputStream fout = new FileOutputStream(isfile);
Bitmap bitmap = null;

bitmap = Bitmap.createScaledBitmap(bm, 350, 350, true);
bitmap.compress(CompressFormat.JPEG, 20, fout);

使用上面的代码,我可以将图像大小调整为350 X 350但我希望仅使用宽度作为参数进行缩放,以便高度相应调整,图像比例保持不变

另外还要提一下我是否应该刷新FileoutputsteaminputStream

1 个答案:

答案 0 :(得分:1)

如何缩放保留宽高比的图像:

orig_width = bm.getWidth();
orig_height = bm.getHeight();
aspect = orig_width / orig_height;
new_width = 500;
new_height = orig_height / aspect;

new_height = 500;
new_width = orig_width * aspect;