我正在使用react native来制作图像编辑器应用程序。
只需添加圆形或方形等功能即可。
_handleAddCircle() {
let circle = {
left: 20,
top: 84
};
let circles = this.state.circles;
circles.push(circle);
this.setState({
circles: circles
});
},
render: function() {
let circles = this.state.circles.map((circle, key) => {
return (
<Circle key={key} left={circle.left} top={circle.top} updatePosition={this.updatePosition} />
);
});
return (
<View style={styles.container}>
<TouchableHighlight
style={styles.button}
onPress={this._handleAddCircle}
underlayColor="#88D4F5">
<Text style={styles.buttonText}>add</Text>
</TouchableHighlight>
<ScrollView ref="resultImage" style={styles.scrollView}>
<Image
style={styles.image}
source={require('../../resources/images/1422374259704.jpeg')} />
{circles}
</ScrollView>
<TouchableHighlight
style={styles.button}
onPress={this._handleSave}
underlayColor="#88D4F5">
<Text style={styles.buttonText}>save</Text>
</TouchableHighlight>
</View>
);
}
但工作后我找不到保存图片。
我觉得很难在没有母语的情况下制作图像编辑器。
我需要什么包或插件?
答案 0 :(得分:2)
你可以使用像https://github.com/gre/react-native-view-shot这样的包来包装你的图像+叠加层:
<ViewShot ref="viewShot" options={{ format: "png", quality: 1 }}>
<ScrollView ref="resultImage" style={styles.scrollView}>
<Image
style={styles.image}
source={require('../../resources/images/1422374259704.jpeg')} />
{circles}
</ScrollView>
</ViewShot>
然后捕获它:
this.refs.viewShot.capture()
答案 1 :(得分:0)
您还可以在图像编辑器应用中使用https://github.com/eneskarpuz/react-native-drag-text-editor进行所有文本编辑操作。
...
import DragTextEditor from 'react-native-drag-text-editor';
...
<DragTextEditor
minWidth={100}
minHeight={100}
w={200}
h={200}
x={WINDOW.width/4}
y={WINDOW.height/3}
FontColor={"#000000"}
LineHeight={15}
TextAlign={"left"}
LetterSpacing={0}
FontSize={15}
isDraggable={true}
isResizable={true}
/>
...