UPDATE Since the question was complicating and unclear, I'm rewriting my question to make it much simpler.
Given
what I want
Here is my example code
// render the part of the image
console.log(left); // 50
console.log(thumbSize); // 300
return (
<Image
source={{uri: image}}
style={selectedStyle(left, top, thumbSize)}/>
);
...
function selectedStyle(left, top, thumbSize) {
return {
left,
top,
width: thumbSize,
height: thumbSize
};
}
UPDATE from zvona's working demo, what I want is this.
but nothing else.
Here is a working example: https://snack.expo.io/@zvona/cropped-image
The idea is to have "cropped" View
where Image
is positioned inside it with custom dimensions. I use constants in my example to clarify the case.
<View style={styles.cropped}>
<Image
style={styles.image}
source={{uri: 'https://upload.wikimedia.org/wikipedia/en/0/02/Homer_Simpson_2006.png'}} />
</View>
And on styles:
image: {
marginLeft: -OFFSET_LEFT,
marginTop: -OFFSET_TOP,
width: IMAGE_WIDTH,
height: IMAGE_HEIGHT,
},
cropped: {
width: 150,
height: 150,
overflow: 'hidden',
position: 'absolute',
left: OFFSET_LEFT,
top: OFFSET_TOP,
},
Note that ImageBackground
is only for example purposes and it's not needed in the actual implementation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With