我怎样才能让原生的图像编辑器做出反应?

时间:2016-02-15 01:01:06

标签: android ios reactjs react-native image-editing

我正在使用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>
    );
}

但工作后我找不到保存图片。

我觉得很难在没有母语的情况下制作图像编辑器。

我需要什么包或插件?

2 个答案:

答案 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}
          /> 
...