diff --git a/package-lock.json b/package-lock.json
index 4a7a661..ab80d4a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1733,6 +1733,11 @@
}
}
},
+ "base-64": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz",
+ "integrity": "sha1-eAqZyE59YAJgNhURxId2E78k9rs="
+ },
"base64-js": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
diff --git a/package.json b/package.json
index 4517d31..47e662f 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
"eject": "expo eject"
},
"dependencies": {
+ "base-64": "^0.1.0",
"expo": "^33.0.0",
"react": "16.8.3",
"react-dom": "^16.8.6",
diff --git a/screens/ConfirmScreen.js b/screens/ConfirmScreen.js
index a2250d6..f3f3b13 100644
--- a/screens/ConfirmScreen.js
+++ b/screens/ConfirmScreen.js
@@ -1,6 +1,17 @@
import React from 'react';
+import {decode as atob, encode as btoa} from 'base-64';
import { StyleSheet, Text, View, TouchableOpacity, Dimensions, Image, Button } from 'react-native';
+
+function arrayBufferToBase64(buffer) {
+ var binary = '';
+ var bytes = [].slice.call(new Uint8Array(buffer));
+
+ bytes.forEach((b) => binary += String.fromCharCode(b));
+
+ return window.btoa(binary);
+};
+
class ConfirmScreen extends React.PureComponent {
static navigationOptions = {
title: 'Select Region to Scan',
@@ -17,12 +28,32 @@ class ConfirmScreen extends React.PureComponent {
super(props);
this.state = {
- coordinates: null
+ grayscale: null
}
}
- processImage = () => {
- console.log(photo);
+ processImage = (photo) => {
+
+ fetch('https://tranquil-atoll-18580.herokuapp.com/scan', {
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ method: 'POST',
+ body: JSON.stringify({
+ 'image': photo.base64
+ })
+ })
+ .then(response => response.json())
+ .then((response) => {
+
+ console.log(response);
+
+ const image = response.image;
+
+ this.props.navigation.navigate('Result', {image});
+ })
+ .catch(error => console.log(error));
}
render() {
@@ -38,7 +69,7 @@ class ConfirmScreen extends React.PureComponent {
}}
source={{uri}} />
-
+
);
diff --git a/screens/HomeScreen.js b/screens/HomeScreen.js
index a5cfdd5..9478744 100644
--- a/screens/HomeScreen.js
+++ b/screens/HomeScreen.js
@@ -36,7 +36,7 @@ class HomeScreen extends React.PureComponent {
snap = async() => {
if(this.camera) {
- let photo = await this.camera.takePictureAsync();
+ let photo = await this.camera.takePictureAsync({ base64: true});
this.props.navigation.navigate('Confirmation', {photo});
}
}
diff --git a/screens/Results.js b/screens/Results.js
index 7a28fb0..c47668e 100644
--- a/screens/Results.js
+++ b/screens/Results.js
@@ -1,16 +1,28 @@
import React from 'react';
-import { StyleSheet, Text, View, TouchableOpacity, Dimensions } from 'react-native';
+import { StyleSheet, Image, View, TouchableOpacity, Dimensions } from 'react-native';
import { MaterialCommunityIcons } from '@expo/vector-icons';
-export default ResultImage = ({ snap }) => (
-
-
-
-
-
-);
+
+class Result extends React.PureComponent{
+ constructor(props){
+ super(props);
+ }
+
+ render() {
+ const { navigation } = this.props;
+ const photo = navigation.getParam('image', {});
+ return(
+
+
+
+ )
+ }
+}
+
+export default Result
const styles = StyleSheet.create({
cameraIcon: {