【问题标题】:Cropped Image size in Android is constantAndroid中裁剪的图像大小是恒定的
【发布时间】:2013-11-11 01:03:57
【问题描述】:

我正在以圆形方式裁剪图像并在创建意图时使用以下代码

    intent.setData(mImageCaptureUri);
    intent.putExtra("outputX", 200);
    intent.putExtra("outputY", 200);
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);

由于我使用的是 outputX = 200,因此无论我放大或缩小多少,我都会将每个裁剪图像的宽度和高度设为 200 和 200。

下图显示的两个图像具有不同的缩放比例,但仍返回相同的高度和宽度。

 width  = bitmap.getWidth(); 

谁能告诉我应该在行中使用什么参数

intent.putExtra("outputX", 200);

这样我才能得到裁剪图像的真实宽度和高度(不是每种情况下的 200)。

【问题讨论】:

  • 你删除了那两个参数(outputx,outputy)然后尝试了吗???
  • 是的,试过了。但是对于某些宽度和高度值,它可以正常工作,但对于某些值,它会崩溃。意味着当我放大更多 [有问题的图像 2](宽度和高度大约 280)它工作正常但是当放大较小 [有问题的图像 1](宽度和高度大约 > 300)时,应用程序只是关闭而没有任何错误或警告。
  • 是的,因为它不能处理如此大量的数据。您是否收到 OutOfMemory 错误。剪完之后,你在做什么???将其设置为图像视图???
  • 是的。裁剪后,我将其设置为图像视图。 logCat 中没有显示此类错误。它只是默默地关闭。
  • 任何建议如何避免这种情况。我的意思是处理大数据。顺便说一句,这不是那个问题。无论您放大或缩小多少。它以宽度和高度各 200 的方式和平地显示在 imageview 上。

标签: android image width crop


【解决方案1】:

当我回答您的earlier 问题时,我不知道这是问题所在。我相信您正在寻找的答案应该是:

intent.setData(mImageCaptureUri);
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("scale", false);

确保将参数 scale 设置为 false。它默认为真。

PS 由于 Android 是开源的,并且相机 + 裁剪应用程序是操作系统的一部分,所以我所做的就是阅读源代码。您应该查看的文件是here。查看变量 mScale 以了解如何使用该参数。

【讨论】:

  • 将 scale 参数设置为 false 会导致奇怪的行为。没有按预期工作。
  • 你能告诉我发生了什么吗?您使用的是什么设备和操作系统?我会尝试类似的。
猜你喜欢
  • 1970-01-01
  • 2015-02-15
  • 1970-01-01
  • 2012-03-12
  • 2013-01-01
  • 2011-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多