4.0.0 • Published 5 years ago

react-native-vibrant-color v4.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

NOTE: This was forked from hu9osaez to get support for promises which he did not release

react-native-vibrant-color

PRs Welcome Extract the dominant colors of an image (Just for Android).

Getting started

$ npm install react-native-vibrant-color --save

Mostly automatic installation

$ react-native link react-native-vibrant-color

Manual installation

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.idanlo.rnvibrantcolor.RNVibrantColorPackage; to the imports at the top of the file
  • Add new RNVibrantColorPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-vibrant-color'
    project(':react-native-vibrant-color').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-vibrant-color/android')
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-vibrant-color')

Usage

import React, { Component } from 'react';
import { StyleSheet, View } from 'react-native';
import { colorsFromUrl } from 'react-native-vibrant-color';

const imageUrl = 'https://source.unsplash.com/random/800x600';

const styles = StyleSheet.create({
    container: {
        flex: 1,
        alignItems: 'center',
        justifyContent: 'center'
    },
    image: {
        width: 300,
        height: 300,
        borderRadius: 10
    }
});

class Example extends Component {
    constructor() {
        super();
        this.state = {
            color: '#ffffff',
        };
    }

    componentWillMount() {
        colorsFromUrl(imageUrl).then(colors => {
            self.setState({ color: colors.averageColor });
        });
    }

    render() {
        return (
            <View style={[styles.container, {backgroundColor: this.state.color }]}>
                <Image style={styles.image} source={{ uri: imageUrl}} />
            </View>
        );
    }
}

API

Methods

  • colorsFromUrl(imageUrl): Promise resolves an object with the prominent colors from the image. Object properties are averageColor, dominantColor, vibrantColor, darkVibrantColor and lightVibrantColor. If some color doesn't exist will return #CCCCCC.