我想裁剪图像并输入在图像中查看。如何使用这种类型的裁剪从相机裁剪图像?

Posted

技术标签:

【中文标题】我想裁剪图像并输入在图像中查看。如何使用这种类型的裁剪从相机裁剪图像?【英文标题】:I want to crop an image and type was view in image. How can I crop an image from camera using this type of cropping? 【发布时间】:2015-11-03 10:17:01 【问题描述】:

如何裁剪图像?我尝试了一些使用意图的概念,但仍然失败。我想要这种类型的裁剪。

这是一张图片:

【问题讨论】:

你能说得具体点吗? 我只想像链接上面显示的那样裁剪图像。有 8 个裁剪点,我想从这 8 个点调整裁剪点。我使用 CropImageview 库但无法裁剪图像。跨度> github.com/cesards/CropImageView 这是我可以使用的库的链接。 你能分享这个项目吗?或一些代码?也许出了点问题…… 简单地说,我想从相机拍一张照片,然后像你在图像中看到的那样裁剪图像我该怎么做,我使用那个库,但这对我没有帮助。 【参考方案1】:

1.在其布局中有一个带有CropImageView 的活动。 2.用IntentstartActivityForResult启动相机活动来拍照。 3.在Activity中,覆盖onActivityResult获取图片位图并执行`CropImageView.setImageBitmap(bitmap),瞧!现在您可以裁剪它... 看看这个例子: Capture Image from Camera and Display in Activity

【讨论】:

【参考方案2】:

试试下面的代码:

BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inSampleSize = 1; 
Bitmap bm = BitmapFactory.decodeFile(imagePath, opts);
Intent intent = new Intent("com.android.camera.action.CROP");              
intent .setDataAndType(outputFileUri, "image/*");
intent.putExtra("outputX",bm.getWidth());
intent.putExtra("outputY", bm.getHeight());
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 0);
intent.putExtra("scale", true);
intent.putExtra("return-data", false); 
startActivityForResult(intent, 2);

以下参数起着至关重要的作用:

 intent.putExtra("aspectX", 0);
    intent.putExtra("aspectY", 0);

更多信息: Android - Crop image taken from camera with resizable ,independant height and width of cropped area

【讨论】:

我已经完成了这种类型的裁剪图像,我想要我在 que 中查看的那种类型的裁剪。看到了,谢谢你的建议【参考方案3】:

为您的活动创建一个 xml 文件,您将在其中在 main_imageview 中显示原始图像,并将另一个 imageview 作为子项添加到crop_main_layout 中,将裁剪矩形图像作为 src(9 个补丁图像)

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/crop_main_layout"
    android:layout_
    android:layout_ >

    <LinearLayout
        android:id="@+id/imageview_layout"
        android:layout_
        android:layout_
        android:gravity="center" >
        <ImageView
            android:id="@+id/main_imageview"
            android:layout_
            android:layout_
            android:background="@color/transparent"
            android:scaleType="centerInside"
            android:padding="@dimen/crop_view_padding"/>
    </LinearLayout>
</RelativeLayout>

裁剪矩形图像视图可以是从 Imageview 派生的自定义类,它将处理所有 onTouchEvents 并提供调整大小/移动功能,一旦用户选择选择并在裁剪屏幕上按完成,使用选定的裁剪矩形裁剪图像(自定义裁剪矩形图像视图边界)。

Bitmap.createBitmap(currentBitmap, cropRect.left, cropRect.top, cropRect.width(), cropRect.height());

【讨论】:

以上是关于我想裁剪图像并输入在图像中查看。如何使用这种类型的裁剪从相机裁剪图像?的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能结合这两个代码? (python图像查看器+鼠标拖动图像ROI裁剪)

检测屏幕高度并裁剪全尺寸图像

如何使用 OpenCV 裁剪图像中的白色斑块并制作护照大小的照片

在 iOS/swift 中上传图像时如何删除裁剪选项

如何在 Ruby on Rails 中裁剪图像

如何查看精确调整大小的图像放入 Vision 框架?