Как нарисовать прямоугольники на изображении в React native - PullRequest
0 голосов
/ 02 мая 2019

В течение некоторого времени я искал ссылки на то, как рисовать прямоугольники на изображении с использованием собственного реагирования, но ничего не нашел.

Я пытаюсь сделать что-то вроде передачи в качестве параметров функции, фотографии и координат вершин диагонали прямоугольника, а затем вернуть изображение с этим нарисованным прямоугольником. Как я мог это сделать?

Пример

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Создание представления с изображением и видом (прямоугольник) в качестве дочерних элементов. Поместите прямоугольник в поле «Изображение», установив абсолютную позицию по отношению к прямоугольнику. Для этой позиции необходимо установить значения стиля прямоугольника для верха, низа, левого и правого.создали функцию для передачи значений позиции.

Проверьте этот пример:

import * as React from "react";
import { Text, View, StyleSheet, Image } from "react-native";

export default class App extends React.Component {
  renderImage = (topPosition, bottomPosition, leftPosition, rightPosition) => {
    return (
      <View style={styles.imageContainer}>
        <Image
          source={{
            uri:
              "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRzwZW9gvrxF2McRF-wP5TxCIBU_3fA2XDl9DESsm1uqowjSvZ1"
          }}
          style={styles.image}
          resizeMode="stretch"
        />
        <View
          style={[
            styles.rectangle,
            {
              top: topPosition,
              bottom: bottomPosition,
              left: leftPosition,
              right: rightPosition
            }
          ]}
        />
      </View>
    );
  };

  render() {
    return (
      <View style={styles.container}>{this.renderImage(80, 55, 30, 70)}</View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    backgroundColor: "#ecf0f1",
    padding: 8
  },
  imageContainer: {
    width: 300,
    height: 250,
    alignSelf: "center"
  },
  image: {
    width: 300,
    height: 250
  },
  rectangle: {
    borderWidth: 3,
    borderColor: "red",
    position: "absolute"
  }
});
0 голосов
/ 02 мая 2019

Думай просто ... как создать div с цветом фона.Вот пример:

import * as React from 'react';
import { Text, View, StyleSheet, Image } from 'react-native';
import { Constants } from 'expo';

export default class App extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <View style={styles.rectangle}></View>
        <Image source={require('assets/snack-icon.png')} />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    paddingTop: Constants.statusBarHeight,
    backgroundColor: '#ecf0f1',
    padding: 8,
    position: 'relative',
  },
  rectangle: {
    height: 128,
    width: 128,
    backgroundColor: 'salmon',
    position: 'absolute', 
    zIndex: 99,
    top: '50%',
    left: '40%'
  },

});

Результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...