使用边界框react-native-camera裁剪图像

问题描述 投票:0回答:2

我的应用程序中有一个相机视图,其中有一个可调整大小的边界框 camera view bounding box image

现在,在拍摄图像后,我希望能够只拍摄图像中聚焦的部分,因此我使用了 这个反应原生库中的 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
2个回答
4
投票

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

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


0
投票

我实际上遇到了同样的情况,你找到解决方案了吗?

© www.soinside.com 2019 - 2024. All rights reserved.