Я создаю функциональность "Tagging from photo".
- Когда пользователь перемещает или зажимает квадрат на изображении,
- 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
/>
Это непрерывная проблема: Как показать единственную часть изображения.
Это работает, но решение не соответствует моим ожиданиям.
- Он не меняет ширину и высоту (я хочу исправить изменение размера изображения с "ширины квадрата" до "70" для каждой ширины и высоты).
- Он разбивает весь стиль (A, All, все исчезает)
Я пытался решить эту идею в течение нескольких дней, но не смог найти точный способ.
Обновление: Я почти решил его, но изменил размер
Я изменил 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).