剪切图片 Editing is not supported for this image

Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(data, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("scale", true);
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", size);
intent.putExtra("outputY", size);
intent.putExtra("return-data", true);
startActivityForResult(intent, PHOTO_REQUEST_CUT );

代码如上,简单的调用剪切图片,但是在华为的Nexus6p 手机上,从相册中选择的图片却不能打开剪切界面,提示:Editing is not supported for this image

4个回答

以下是我的解决办法,非常感谢 这位大神的帮助:http://my.csdn.net/a1002450926 (我是岩仔)的帮助

具体 原因是因为在android4.4以后,从相册获取图片的方法返回的Uri data ,由 file:// 路径变成 了 content://路径 以下方法可以通过判断 并获取到file://的路径,即可使用。同时也谢谢两位的回答

Intent intent = new Intent("com.android.camera.action.CROP");
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        File uriFile = new File(TTImageUtil.getPath(mContext, data));
        intent.setDataAndType(Uri.fromFile(uriFile), "image/*");
    }else{
        intent.setDataAndType(data, "image/*");
    }
    // crop为true是设置在开启的intent中设置显示的view可以剪裁
    intent.putExtra("crop", "true");
    intent.putExtra("scale", true);
    // aspectX aspectY 是宽高的比例
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    // outputX,outputY 是剪裁图片的宽高
    intent.putExtra("outputX", size);
    intent.putExtra("outputY", size);
    intent.putExtra("return-data", true);
    startActivityForResult(intent, PHOTO_REQUEST_CUT );



    @SuppressLint("NewApi")
public static String getPath(final Context context, final Uri uri) {

    final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;

    // DocumentProvider
    if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
        // ExternalStorageProvider
        if (isExternalStorageDocument(uri)) {
            final String docId = DocumentsContract.getDocumentId(uri);
            final String[] split = docId.split(":");
            final String type = split[0];

            if ("primary".equalsIgnoreCase(type)) {
                return Environment.getExternalStorageDirectory() + "/" + split[1];
            }

        }
        // DownloadsProvider
        else if (isDownloadsDocument(uri)) {
            final String id = DocumentsContract.getDocumentId(uri);
            final Uri contentUri = ContentUris.withAppendedId(
                    Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));

            return getDataColumn(context, contentUri, null, null);
        } // MediaProvider
        else if (isMediaDocument(uri)) {
            final String docId = DocumentsContract.getDocumentId(uri);
            final String[] split = docId.split(":");
            final String type = split[0];

            Uri contentUri = null;
            if ("image".equals(type)) {
                contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
            } else if ("video".equals(type)) {
                contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
            } else if ("audio".equals(type)) {
                contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
            }

            final String selection = "_id=?";
            final String[] selectionArgs = new String[] {
                    split[1]
            };

            return getDataColumn(context, contentUri, selection, selectionArgs);
        }
    }
    // MediaStore (and general)
    else if ("content".equalsIgnoreCase(uri.getScheme())) {
        // Return the remote address
        if (isGooglePhotosUri(uri))
            return uri.getLastPathSegment();

        return getDataColumn(context, uri, null, null);
    }
    // File
    else if ("file".equalsIgnoreCase(uri.getScheme())) {
        return uri.getPath();
    }

    return null;
}

/**
 * Get the value of the data column for this Uri. This is useful for
 * MediaStore Uris, and other file-based ContentProviders.
 *
 * @param context The context.
 * @param uri The Uri to query.
 * @param selection (Optional) Filter used in the query.
 * @param selectionArgs (Optional) Selection arguments used in the query.
 * @return The value of the _data column, which is typically a file path.
 */
public static String getDataColumn(Context context, Uri uri, String selection,
                                   String[] selectionArgs) {

    Cursor cursor = null;
    final String column = "_data";
    final String[] projection = {
            column
    };

    try {
        cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,
                null);
        if (cursor != null && cursor.moveToFirst()) {
            final int index = cursor.getColumnIndexOrThrow(column);
            return cursor.getString(index);
        }
    } finally {
        if (cursor != null)
            cursor.close();
    }
    return null;
}


/**
 * @param uri The Uri to check.
 * @return Whether the Uri authority is ExternalStorageProvider.
 */
public static boolean isExternalStorageDocument(Uri uri) {
    return "com.android.externalstorage.documents".equals(uri.getAuthority());
}

/**
 * @param uri The Uri to check.
 * @return Whether the Uri authority is DownloadsProvider.
 */
public static boolean isDownloadsDocument(Uri uri) {
    return "com.android.providers.downloads.documents".equals(uri.getAuthority());
}

/**
 * @param uri The Uri to check.
 * @return Whether the Uri authority is MediaProvider.
 */
public static boolean isMediaDocument(Uri uri) {
    return "com.android.providers.media.documents".equals(uri.getAuthority());
}

/**
 * @param uri The Uri to check.
 * @return Whether the Uri authority is Google Photos.
 */
public static boolean isGooglePhotosUri(Uri uri) {
    return "com.google.android.apps.photos.content".equals(uri.getAuthority());
}

给你个建议,用第三方的图片选择或剪切吧 自己写这个又麻烦 还有兼容的问题

你这个问题我估计下很可能是你从图片选取的时候使用的 ACTION_GET_CONTENT 而不是ACTION_PICK

4,4以下使用ACTION_GET_CONTENT 以上使用而不是ACTION_PICK 而且使用而不是ACTION_PICK返回的path还要进行判断才能获得正确的地址

我估计是你在选择图片获得的地址就不对 然后进行裁剪才出现提示:Editing is not supported for this image

所以如果项目没有特殊要求 就直接用第三方的吧 个人推荐一个: galleryFinal 可以预览 可以裁剪 还可以吧

PS:QQ 497289807

ysn003
ysn003 找到解决的方法了,谢谢,不想什么都是知其然不知其所以然的,所以还是自己解决了,你说的第三方库我发现github上面有好几个,也不知道是哪个,但还是谢谢了
大约 3 年之前 回复

打错字了。。。。 4.4以上使用ACTION_PICK

return-data", false 这个参数用false 指定输出图片试一下
参考代码
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("scale", true);
intent.putExtra("scaleUpIfNeeded", true);
intent.putExtra("outputX", size);
intent.putExtra("outputY", size);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("noFaceDetection", false);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
intent.putExtra("return-data", false);
startActivityForResult(intent, PHOTO_REQUEST_CUT);


http://blog.csdn.net/maple_qqh/article/details/52249406

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Poisson Image Editing
图像增强算法,当前图像界最优秀的算法介绍。
Poisson image editing算法实现的Matlab代码解析
之前我发了数篇系列博文来仔细研究Poisson Image Editing算法,每次重新审视和深入,仿佛都能有更为深刻的认识和很大的收获。这应该算是我这个系列的完结篇,会用用Matlab代码一点一点的演示,原文作者到底是如何设计和实现他那个强大且影响深远的算法的。希望你在看本文之前务必参考一下文章来了解算法原理,本文将主要讲解编程实现的问题,对于前面讲过的内容,我不会深究。但我个人总体的感觉是,现...
Automatic Editing
Text-processing tools like awk and sed allow you to automatically perform a sequence of editing operations based on a script. For this problem we consider the specific case in which we want to perform a series of string replacements, within a single line of text, based on a fixed set of rules. Each rule specifies the string to find, and the string to replace it with, as shown below.nRule Find Replace-by n1. ban bab n2. baba be n3. ana any n4. ba b hind the gnnTo perform the edits for a given line of text, start with the first rule. Replace the first occurrence of the find string within the text by the replace-by string, then try to perform the same replacement again on the new text. Continue until the find string no longer occurs within the text, and then move on to the next rule. Continue until all the rules have been considered. Note that (1) when searching for a find string, you always start searching at the beginning of the text, (2) once you have finished using a rule (because the find string no longer occurs) you never use that rule again, and (3) case is significant.nnFor example, suppose we start with the linennbanana boatnnand apply these rules. The sequence of transformations is shown below, where occurrences of a find string are underlined and replacements are boldfaced. Note that rule 1 was used twice, then rule 2 was used once, then rule 3 was used zero times, and then rule 4 was used once.nnBefore After nbanana boat babana boat nbabana boat bababa boat nbababa boat beba boat nbeba boat behind the goatnnnInputnnThe input contains one or more test cases, followed by a line containing only 0 (zero) that signals the end of the file. Each test case begins with a line containing the number of rules, which will be between 1 and 10. Each rule is specified by a pair of lines, where the first line is the find string and the second line is the replace-by string. Following all the rules is a line containing the text to edit.nnnOutputnnFor each test case, output a line containing the final edited text.nnBoth find and replace-by strings will be at most 80 characters long. Find strings will contain at least one character, but replace-by strings may be empty (indicated in the input file by an empty line). During the edit process the text may grow as large as 255 characters, but the final output text will be less than 80 characters long.nnThe first test case in the sample input below corresponds to the example shown above.nnnSample Inputnn4nbannbabnbabanbenanananynba bnhind the gnbanana boatn1ntnshntoe or topn0nnnSample Outputnnbehind the goatnshoe or shop
PHP剪切图片
/* * 功能:PHP图片水印 (水印支持图片或文字) * 参数: * $groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式; * $waterPos 水印位置,有10种状态,0为随机位置; * 1为顶端居左,2为顶端居中,3为顶端居右; * 4为中部居左,5为中部居中,6为中部居右; * 7为底端居左,8为底端居中,9为底端居右; * $waterImage 图片水印,即作为水印的图片,暂只支持GIF,JPG,PNG格式; * $waterText 文字水印,即把文字作为为水印,支持中文; * $textFont 文字大小,值为1、2、3、4或5,默认为5; * $textColor 文字颜色,值为十六进制颜色值,默认为#FF0000(红色); * * 注意:Support GD 2.0,Support FreeType、GIF Read、GIF Create、JPG 、PNG * $waterImage 和 $waterText 最好不要同时使用,选其中之一即可,优先使用 $waterImage。 * 当$waterImage有效时,参数$waterString、$stringFont、$stringColor均不生效。 * 加水印后的图片的文件名和 $groundImage 一样。 */
Asp.Net剪切图片
asp.net所开发的图片剪切,利用了jquery的Jcrop完美兼容各种浏览器,功能有剪切图片、保存并预览,全程采用ajax,附有完整代码。
python剪切图片
import cv2 import matplotlib.pyplot as plt image = cv2.imread('image.jpg') (h, w, c) = image.shape print image.shape (b, g, r) = image[0, 0] print image[0, 0] image[0, 0] = [0, 0, 255] cX, cY = (...
PhotoClip剪切图片。
PhotoClip body {     margin: 0;     text-align: center; } #clipArea {     height: 300px; } #file, #clipBtn {     margin: 20px; } #view {     margin: 0 auto;     width: 200px;     heig
如何剪切图片~??
各位.我用g.drawimage在frame上画了个图片,现在要剪切其中的部分(鼠标动作已能全部监听),请问该用什么方法啊?????rnrn这是我所有的分了..少了的话对不起了
剪切图片问题、、
我从数据库中读取出来的URL都是大图,我想先弄一个小图的列表页面,点击进去才是大图rn但怎么让它显示小图?限制最大高度和宽度因为图片的尺寸不一样会造成容器有空白部分..rn我的想法是剪切图片的中间部分,因为是展示的列表所以没必要整张图片都显示出来,rn然后刚好可以充满容器而且不会变形,怎么可以实现?
【【【【【【如何剪切图片?】】】】】】
1.如何根据一副图片生成一副剪切的图片(比如:只需要上半部分片).rn2.并且打印其2进制流.
剪切图片的工具类
剪切图片 ,缩放
图片剪切,剪切图片
可以把图片剪切成正方形大小,改变图片的形状
js剪切图片
上传头像,剪切需要的形状大小
工具类,剪切图片
工具类,剪切图片,对图片的切割,以及其他的小工具。
不规则剪切图片
通过网络URL获得图片转化为bitmap,自定义一个ImageView把图片进行自由剪切效果
java剪切图片
java对图片剪切,缩小图片,放大图片,图片重叠,画线,强制转换图片类型,等。
Android剪切图片
Android剪切图片   项目需求中用到剪切图片功能,在网上打了比较好的解决方案,分享下。 参考:http://www.linuxidc.com/Linux/2012-11/73940.htm 贴出部分代码: private android.view.View.OnClickListener onClickListener = new android.view.View.OnCli...
C#剪切图片
C#剪切图片,功能还需要进一步完善中,仅实现了最基础最基础的功能。
Applet剪切图片
现在由于公司有个任务,就是要求再网页上做图片剪切的功能,然后把剪切出来的图片保存进数据库,rn而且现在客户也崔着交货了,我想用Applet做,但是Applet存在访问客户端硬盘资源问题,还有就是把图片剪切出来后要保存为一个文件放在本地硬盘然后再上传去数据库,也就是象普通截取图片的软件那样,只是这个要在浏览器实现,这个问题我问了四遍了,我希望CSDN里面还真是有牛人,不要只是一些光会吹,不会做的人,虽然过火了,但是还希望大家能帮帮我,100分,谁帮我解决,肯定给
如何剪切图片
在form上放一张图片,自制一个四边形,可以在图片上移动,如何实现将四边形选定区域图片,以文件形式保存起来。
Poisson Image Editing泊淞图像编辑论文原文译文
Patrick P´ erez的Poisson Image Editing泊淞图像编辑论文原文译文
图像无缝融合研究(一)Poisson Image Editing
15年实习的时候研究了一下无缝融合方面的,主要是看了一下Poisson Image Editing,发现这篇文章真的是融合方面的大牛啊!现在又因为工作问题重新回来看融合方面的东西,发现之前看的很多都不记得了,所以写这篇博客便于日后可以方便回顾。 图像融合效果十分强大,原文中给出的融合示意图: 可以看出被贴入的熊和孩子不仅边缘与背景融合的十分自然并且色调也相应做了调整因此看上去与背景十分
Physics-Based Terrain Editing
Large-Scale Physics-Based Terrain Editing 2011
the craft of text editing
the craft of text editing 一本电子书。放在这里收藏。
chrome office editing
chrome插件
The Eclipse Graphical Editing FrameWork
The Eclipse Graphical Editing FrameWork (GEF) - Dan Rubel
The Eclipse Graphical Editing Framework
Eclipse Graphical Editing Framework, Eclipse Series.
TextMate Power Editing for the Mac
TextMate使用说明,mac os超级棒的编辑器,你懂的
The Craft of Text Editing
The Craft of Text Editing
【迭代加深搜索】 Editing a Book
B - Editing a BookYou have n equal-length paragraphs numbered 1 to n. Now you want to arrange them in the order of 1, 2, … , n. With the help of a clipboard, you can easily do this: Ctrl-X (cut) and C
Editing 如何用好条件语句
1. 多重判断使用Array.includes(elements);    //if include return true,else will return false;  2. 更少的嵌套,尽早的return   //若需要判断某元素一次即可,或存在阀值,判断成功发现条件立即return; 3. 使用默认参数和解构 //将无效的null ,undefined等设置默认参数 避免发生错误 4. ...
剪切图片并保存
首先用jquery crop 插件,获取XY的左边,然后调用我这个工具类进行剪切并保存。
OpenCV剪切图片圆形区域
代码位置:30-CutCircularArea.py 效果如下: 代码: import cv2 import numpy as np #加载图片 img = cv2.imread('./res/icon.png', cv2.IMREAD_UNCHANGED) #获取图片尺寸 height, width = img.shape[:2] height = int(height) width = ...
PHP如何剪切图片?
G了一圈,基本代码都是:rnrn$arr=getimagesize($file);rnimagecopyresized($newim, $im, 0, 0, 0,0, $width, $height,$arr[0] ,$arr[1] );rnrn但是这并不是我要的,这是缩小图片或放大图片。rnrn而我要的是剪切图片,就是做壁纸站时,我们会需要将原图(可能是1440x900),剪切成800x600的。rnrn而不是缩小。rnrn超过800x600的地方不要。
matlab按步长剪切图片
matlab按步长剪切图片: clear;close all; %% settings folder = 'E:\train\'; savepath = 'F:\matlab\'; size_input = 60; stride = 40; %% initialization data = zeros(size_input, size_input, 1, 1); count =
struts2上传下载+前端剪切图片
昨天头让写个这么个东西,自己之前也见过淘宝上看商品的那个,还有论坛上传头像上选择区域的那种,一直懒也没想过这个东西。这不今天让写,脑头一蒙,哎呀妈啊,没写过啊。 就各种google,各种百大哥,最后呢,找到了个js组件,好像是叫这个(cropper)。然后呢,就想起来了自己的上传下载的例子。然后就#%#$^%$^$%!@#$&*(*&#%%^!@#!,这成这样了。好了,废话不说了,直接上代码,[...
python使用CV2剪切图片
  人脸检测的顺序是:   检测画面有没有人脸。   如果有,且可信度达标,将人脸剪切出来之后,再进行人脸搜索。   那么,如何进行剪切呢?   这个可以使用cv2: image_clip = image_rgb[int(top):(int(top) + int(height)), int(left):(int(left) + int(width))]   这里特别需要说明:   ...
剪切图片等用工具
一个很好用的剪切图片用工具,
struts2结合jquery剪切图片
jquery实现图片的切割,上传一张图片后进行其中的一部分切割。例如博客、论坛的头像上传等
Quartz2D(6)剪切图片
- (void)drawRect:(CGRect)rect 2 { 3 //画圆,以便以后指定可以显示图片的范围 4 //获取图形上下文 5 CGContextRef ctx=UIGraphicsGetCurrentContext(); 6 CGContextAddEllipseInRect(ctx, CGRectMake(100, 100, 50, 50
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件