关于如何裁剪从图库或相机拍摄的图像有很多话题.一个非常简单的,不是很多人喜欢的,包括以下片段
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 617);
intent.putExtra("aspectY", 619);
(无论如何,该片段应该是不完整的.继续……)
请注意我在代码片段中如何使用两个大素数.我在这里希望限制最小的作物尺寸.然而,617X619似乎没有效果;对我来说基本上意味着所使用的算法都具有类似的功能
double scale = (double) aspectY/aspectX;
然后用于匹配xDimen与yDimen.
但是在把手放在空中并放弃之前,我注意到instagram已经成功地限制了裁剪器的最小尺寸.有谁知道我怎么做到这一点?基本上如果你使用instagram,你会注意到你不能裁剪图像的“太小”部分.我该如何决定这些尺寸?
基本上就像Instagram正在做的那样
double scale = (double) aspectY/aspectX;
//....
if(someInputX > aspectX){
xDimen = someInputX;
yDimen = scale* xDimen;
}else{
//do not crop any further
}
我一直在寻找一些裁剪库,看看我是否能弄清楚如何修复最小尺寸,但我似乎无法弄明白.例如,我一直在研究与http://commonsware.com/blog/2013/01/23/no-android-does-not-have-crop-intent.html链接的git项目
解决方法:
您是否愿意使用第三方库?如果是这样,您可以使用这个并更改它以限制最小矩形大小(我不相信它默认允许,但如果您真的想要将它添加到代码中很容易).
https://github.com/edmodo/cropper