gpt4 book ai didi

android - 减小从 android 中的相机捕获的图像的大小

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:25 25 4
gpt4 key购买 nike

在这里,我将从相机拍摄的图像保存在 SD 卡上。此处,捕获的图像大小大于 1 MB。我想在保存到 sdcard 之前将这个大小减少到将近 500kb 到 600kb。我怎么能那样做?

try 
{
Bitmap mPhoto;
mPhoto = android.provider.MediaStore.Images.Media.getBitmap(cr, CheckInGallery.mUri);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
mPhoto.compress(Bitmap.CompressFormat.PNG, 100, bytes);

File direct = new File(Environment.getExternalStorageDirectory() + "/RetailRun");
String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
Toast.makeText(getBaseContext(), "Time :" + mydate, 5000).show();

if(!direct.exists())
{
direct.mkdir();
File file = new File(Environment.getExternalStorageDirectory()+File.separator + "/MyImage/image" + mydate +".jpg");
file.createNewFile();
FileOutputStream fo = new FileOutputStream(file);
fo.write(bytes.toByteArray());
fo.close();
}

else
{
File file = new File(Environment.getExternalStorageDirectory()+File.separator + "/MyImage/image" + mydate +".jpg");
file.createNewFile();
FileOutputStream fo = new FileOutputStream(file);
fo.write(bytes.toByteArray());
fo.close();
}



}

catch (Exception e)
{
Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
}

最佳答案

mPhoto.compress(Bitmap.CompressFormat.PNG, 100, bytes);

100在这就是最好的品质。如果您想减小尺寸,请尝试减小该值

其他方法可能是使用 BitmapFactory.Options() 的 inSampleSize 参数。那也应该减小尺寸。你可以阅读 here

编辑:一些代码

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize=2; //4, 8, etc. the more value, the worst quality of image

Bitmap bmp=BitmapFactory.decodeStream(getContentResolver().openInputStream(CheckInGallery.mUri), null, options);

这应该加载质量稍差的图像。

然后保存图片

bmp.compress(Bitmap.CompressFormat.PNG, 70, bytes);

关于android - 减小从 android 中的相机捕获的图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20607861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com