我正在构建“从照片标记”功能。
- 当用户移动或捏住图像上的方块时,
- PanResponder 改变 x 坐标(左)、y 坐标(顶)、正方形长度(thumbSize)的状态
- 有了数据,我想实时显示方块的部分
所以下面这张图片应该放在A的左边,来自上面的图片。
这是显示“裁剪”图像的渲染部分。
console.log(left) // 80
console.log(top) // 200
console.log(thumbSize) // 150
<Image
source={{uri: image}}
style={{height:70, width: 70, bottom: (-top), right: (-left)
}} <- style is not complete. I'm putting some example code
/>
这是来自:How to show the only part of the image 的连续问题。
它有效,但解决方案不符合我的期望。
- 它不会改变宽度和高度(我想修复将图像从“正方形的宽度”调整为“70”的每个宽度和高度)
- 它打破了整个风格(A,所有,所有的东西都消失了)
几天来我一直试图解决这个想法,但找不到确切的方法。
更新:我几乎解决了,但调整大小很重要
我换Image
到CroppedImage
(新组件)
<CroppedImage
source={{uri: image}}
cropTop={top}
cropLeft={left}
cropWidth={thumbSize}
cropHeight={thumbSize}
width={width(100)}
height={width(100)}
resizeMode="contain" />
这是 CroppedImage
return (
<View style={[{
overflow: 'hidden',
height: this.props.cropHeight,
width: this.props.cropWidth,
backgroundColor: 'transparent'
}, this.props.style]}>
<Image style={{
position: 'absolute',
top: this.props.cropTop * -1,
left: this.props.cropLeft * -1,
width: this.props.width,
height: this.props.height
}}
source={this.props.source}
resizeMode={this.props.resizeMode}>
{this.props.children}
</Image>
</View>
);
它似乎有效,但无法调整大小(从方形宽度 x 高度到 70x70)。