【问题标题】:Crop image using a bounding box react-native-camera使用边界框 react-native-camera 裁剪图像
【发布时间】:2021-08-12 00:44:52
【问题描述】:

我的应用中有一个摄像头视图,其中有一个可调整大小的边界框

现在在拍摄图像后,我希望能够只拍摄被聚焦的图像部分,所以我使用了来自 this react-native library 的 ImageEditor

我遇到的问题是我没有得到一致的裁剪结果我目前有以下值 boxX盯着边界框的X位置; boxY注视边界框的Y位置; boxWidth边界框的宽度; boxHeight边界框的高度。

我一开始使用下面的代码

ImageEditor.cropImage(image.uri, 
                {
                    offset: {x: boxX, y: boxY},
                    size: {width: boxWidth, height: boxHeight},
                }
            )

这给出了一个非常像素化和非常错误的图像裁剪,我不知道为什么,然后我通过添加新变量(如图像宽度和高度以及设备宽度和高度)来添加一些计算,并想出了这段代码:

ImageEditor.cropImage(data.uri, 
                {
                    offset: {x: ((boxX)/deviceWidth)*data.width, y:((boxY)/deviceHeight)*data.height},
                    size: {width: boxWidth/deviceWidth*imageWidth, height: boxHeight/deviceHeight*imageHeight},

                }
            )

这要好得多,但在 Android 上的裁剪仍然是错误的,但在 iOS 上这似乎工作正常且准确,我的问题是如何实现这一点,如果我应该做任何计算以获得一致的结果,请告诉我.

【问题讨论】:

    标签: react-native crop react-native-camera


    【解决方案1】:

    对于图像裁剪,我认为您应该尝试:

    1) https://github.com/ivpusic/react-native-image-crop-picker

    它更常用,看起来维护得更好,可以简化你的工作。

    2) 选择器和https://github.com/prscX/react-native-photo-editor

    如果您想要更复杂的编辑。

    3)如果您对当前适用于 iOS 的库感到满意,请使用上述 2 中的一种,仅适用于 android。

    注意:这是 react-native-image-editor 的一个已知问题,尤其是对于 android。可以在此处找到可以在某些设备上运行的讨论和可能的解决方法:

    https://github.com/callstack/react-native-image-editor/issues/54#issuecomment-754688978

    【讨论】:

    • 是的,但我不希望有另一个屏幕进行编辑
    • 用户已经使用边界框选择了他们想要的图像的哪一部分,并且应该使用该宽度和高度进行裁剪,而无需打开另一个编辑器
    • 我用附加说明更新了我的答案。
    • 是的,这些值实际上是正确的偏移 X,Y,宽度和高度是正确的,在调试时我创建了一个覆盖视图并将这些值分配为该视图的位置和宽度/高度,所以我当用户调整框的大小并且这些值是正确的时,可以实时看到视图的宽度/高度和 x/y 变化
    • 你有没有想过这个问题?如果是,您使用了什么方法?
    猜你喜欢
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    相关资源
    最近更新 更多