我的应用程序访问相机并拍摄照片然后将其保存回 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但我希望仅使用宽度作为参数进行缩放,以便高度相应调整,图像比例保持不变
另外还要提一下我是否应该刷新Fileoutputsteam
和inputStream
答案 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;