gpt4 book ai didi

java - 在android中裁剪后保存图像

转载 作者:搜寻专家 更新时间:2023-11-01 08:48:38 24 4
gpt4 key购买 nike

我正在尝试保存裁剪后的图像并且已成功保存,但问题是保存的图像太小了。我想获得裁剪图像的原始尺寸。这是我保存裁剪图像的代码。

Bundle extras = data.getExtras();
if (extras != null) {
Bitmap photo = extras.getParcelable("data");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, bytes);
File f = new File(fileUri.getPath());
try {
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
fo.close();
} catch (IOException e) {
e.printStackTrace();
}

任何人都可以帮助我获得高质量的裁剪图像。任何帮助将非常感激。谢谢:)

最佳答案

这完全取决于原始图像的大小和您将图像裁剪成的大小。

一种裁剪方式是这样的:

               Intent photoPickerIntent = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
photoPickerIntent.setType("image/*");

photoPickerIntent.putExtra("scaleType", "centerCrop");
photoPickerIntent.putExtra("crop", "true");
photoPickerIntent.putExtra("aspectX", 1);
photoPickerIntent.putExtra("aspectY", 1);

//....snip....
photoPickerIntent.putExtra("outputX", 400);
photoPickerIntent.putExtra("outputY", 400);
//....snip....

photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, getBackgroundUri());
photoPickerIntent.putExtra("outputFormat",Bitmap.CompressFormat.JPEG.toString());
startActivityForResult(photoPickerIntent, ActivityCrop);

有了这个,您总能得到大小为 400 像素(输出 = 400)的正方形图像(纵横比 = 1)。因此,如果您选择 800 像素的正方形图像,它将按比例缩小,从而降低质量。相反,选择一个 50px 的正方形也会得到 400px 的结果。

现在,如果您去掉大小限制(就在虚线处)。您将获得最初选择的区域(示例为 800 和 50)并获得最佳质量。

关于java - 在android中裁剪后保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25758959/

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