Android中的图像裁剪失败
Posted
技术标签:
【中文标题】Android中的图像裁剪失败【英文标题】:Fail Image cropping in Android 【发布时间】:2012-04-23 03:26:01 【问题描述】:所以我想从图库中选择一张图片,然后对其进行裁剪:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), PHOTO_PICKED_WITH_DATA);
好的,选择照片然后在ActivityResult上捕捉它,然后裁剪它:
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(mAvatarUri, "image/*");
intent.putExtra("crop", true);
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", ICON_SIZE);
intent.putExtra("outputY", ICON_SIZE);
intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mAvatarUri);
intent.putExtra("return-data", true);
startActivityForResult(intent, CROP_IMAGE);
现在,问题是当我想将其转换为字节然后将其发送到 xml 中时......它不仅需要裁剪的图像,而是整个图像本身...... 另外,我无法访问裁剪后的图像 uri,它说找不到文件! 嗯,看来我裁剪的图像毕竟没有保存......
我该如何解决这个问题?
三星 ACE 2.3.4
【问题讨论】:
【参考方案1】:在以下链接中检查此代码。
Crop Image
对我来说很好用..
【讨论】:
【参考方案2】:我不知道您是如何获得这种技术来裁剪图像的。但是,对我来说,我总是使用this library。它从来没有给我留下深刻印象。从 android 2.1 一直工作到 3.2(永远不要在 4.0 以后测试它)。
我是这样做的:
Intent cropIntent = new Intent(imageProcessActivity,
CropImage.class);
cropIntent.putExtra("image-path",
FileUtil.saveTempFile(ImageProcessActivity.processedBitmap, filename));
cropIntent.putExtra("scale", true);
imageProcessActivity.startActivityForResult(cropIntent, ImageProcessActivity.INTENT_CROP_CODE);
这里是捕获结果的方法:
if (requestCode == INTENT_CROP_CODE && resultCode == RESULT_OK)
Bundle extras = intent.getExtras();
if (extras != null)
Uri uri = null;
uri = (Uri) extras.get("imageCrop");
Bitmap bitmap = null;
try
bitmap = ImageUtil.decodeFile(
new File(new URI(uri.toString())),
AppConstant.MAX_IMAGE_SIZE);
catch (URISyntaxException e)
e.printStackTrace();
processedBitmap = bitmap;
selectedImage.setImageBitmap(bitmap);
【讨论】:
您好 ariefbayu,我无法使用这个图书馆项目。你能告诉我启动器活动代码的代码吗?提前致谢以上是关于Android中的图像裁剪失败的主要内容,如果未能解决你的问题,请参考以下文章
裁剪图像并保存到 sdcard (Android) 中的特定文件夹?