UNPKG

react-native-image-converter

Version:
66 lines (59 loc) 2.06 kB
import { NativeModules, Platform } from 'react-native' var { RNImageConverter } = NativeModules; class IImageConverter { static convert(param) { if (param.hasOwnProperty('grayscale')) { param.grayscale = param.grayscale.toString().toLowerCase(); } else { param.grayscale = "false"; } if (param.hasOwnProperty('base64')) { param.base64 = param.base64.toString().toLowerCase(); } else { param.base64 = "false"; } if (param.hasOwnProperty('resizeRatio')) { param.resizeRatio = IImageConverter.checkToInputValue(param.resizeRatio); } else { param.resizeRatio = "1.0"; } if (param.hasOwnProperty('imageQuality')) { param.imageQuality = IImageConverter.checkToInputValue(param.imageQuality); } else { param.imageQuality = "1.0"; } try { if (Platform.OS === "ios") { return RNImageConverter.imageConvert(param).then(result => (result)); } else if (Platform.OS === "android") { return new Promise((resolve) => { RNImageConverter.imageConvert(param, resolve); }); } else { return { success: false, errorMsg: "not yet supported.("+Platform.OS+")" } } } catch(error) { return { success: false, errorMsg: "check your native("+Platform.OS+") module setting." } } } static checkToInputValue(inputValue) { try { var checkDataToString = inputValue.toString(); var checkData = parseFloat(checkDataToString); if (checkData <= 0 || checkData > 1.0) { return "1.0"; } else { return checkDataToString; } } catch(error) { return "1.0"; } } } export default IImageConverter;