@@ -155,7 +155,7 @@ - (NSString *)getAssetUrl:(NSString *)localID {
155155 return assetURLStr;
156156}
157157
158- - (void )storeImageInPhotoAlbum : (UIImage *)image reject : (RCTPromiseRejectBlock)reject resolve : (RCTPromiseResolveBlock)resolve {
158+ - (void )storeImageInPhotoAlbum : (UIImage *)image cameraProperties : ( NSDictionary *) cameraProperties reject : (RCTPromiseRejectBlock)reject resolve : (RCTPromiseResolveBlock)resolve {
159159 __block PHObjectPlaceholder *placeholder;
160160
161161 [[PHPhotoLibrary sharedPhotoLibrary ] performChanges: ^{
@@ -170,7 +170,7 @@ - (void)storeImageInPhotoAlbum:(UIImage *)image reject:(RCTPromiseRejectBlock)re
170170
171171 NSString * assetURLStr = [self getAssetUrl: localID];
172172
173- resolve (@{@" url" : assetURLStr, @" width" :@(image.size .width ), @" height" : @(image.size .height )});
173+ resolve (@{@" url" : assetURLStr, @" width" :@(image.size .width ), @" height" : @(image.size .height ), @" camera " :cameraProperties });
174174 }
175175 else
176176 {
@@ -180,7 +180,7 @@ - (void)storeImageInPhotoAlbum:(UIImage *)image reject:(RCTPromiseRejectBlock)re
180180}
181181
182182
183- - (void )storeImageInDirectory : (UIImage *)image directory : (NSString *)directory format : (NSString *)format reject : (RCTPromiseRejectBlock)reject resolve : (RCTPromiseResolveBlock)resolve {
183+ - (void )storeImageInDirectory : (UIImage *)image directory : (NSString *)directory format : (NSString *)format cameraProperties : ( NSDictionary *) cameraProperties reject : (RCTPromiseRejectBlock)reject resolve : (RCTPromiseResolveBlock)resolve {
184184 NSData *data;
185185 if ([format isEqualToString: @" jpg" ]) {
186186 data = UIImageJPEGRepresentation (image, 0.9 );
@@ -198,15 +198,15 @@ - (void)storeImageInDirectory:(UIImage *)image directory:(NSString *)directory f
198198 NSString *filePath = [directory stringByAppendingPathComponent: uniqueFileName]; // Add the file name
199199 bool success = [data writeToFile: filePath atomically: YES ]; // Write the file
200200 if (success) {
201- resolve (@{@" url" : filePath, @" width" :@(image.size .width ), @" height" : @(image.size .height )});
201+ resolve (@{@" url" : filePath, @" width" :@(image.size .width ), @" height" : @(image.size .height ), @" camera " :cameraProperties });
202202 } else {
203203 // TODO use NSError from writeToFile
204204 reject (@" snapshot_error" , [NSString stringWithFormat: @" could not save to '%@ '" , filePath], nil );
205205 }
206206
207207}
208208
209- - (void )storeImage : (UIImage *)image options : (NSDictionary *)options reject : (RCTPromiseRejectBlock)reject resolve : (RCTPromiseResolveBlock)resolve {
209+ - (void )storeImage : (UIImage *)image options : (NSDictionary *)options reject : (RCTPromiseRejectBlock)reject resolve : (RCTPromiseResolveBlock)resolve cameraProperties : ( NSDictionary *) cameraProperties {
210210 NSString * target = @" cameraRoll" ;
211211 NSString * format = @" png" ;
212212
@@ -218,7 +218,7 @@ - (void)storeImage:(UIImage *)image options:(NSDictionary *)options reject:(RCTP
218218 }
219219 if ([target isEqualToString: @" cameraRoll" ]) {
220220 // camera roll / photo album
221- [self storeImageInPhotoAlbum: image reject: reject resolve: resolve];
221+ [self storeImageInPhotoAlbum: image cameraProperties: cameraProperties reject: reject resolve: resolve ];
222222 } else {
223223 NSString * dir;
224224 if ([target isEqualToString: @" cache" ]) {
@@ -229,15 +229,17 @@ - (void)storeImage:(UIImage *)image options:(NSDictionary *)options reject:(RCTP
229229 } else {
230230 dir = target;
231231 }
232- [self storeImageInDirectory: image directory: dir format: format reject: reject resolve: resolve];
232+ [self storeImageInDirectory: image directory: dir format: format cameraProperties: cameraProperties reject: reject resolve: resolve ];
233233 }
234234}
235235
236236RCT_EXPORT_METHOD (snapshot:(NSDictionary *)options resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
237237 dispatch_async (dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0 ), ^{
238238 NSDictionary * selection = options[@" selection" ];
239+ NSDictionary * cameraProperties = [[ARKit sharedInstance ] readCamera ];
239240 UIImage *image = [[ARKit sharedInstance ] getSnapshot: selection];
240- [self storeImage: image options: options reject: reject resolve: resolve];
241+
242+ [self storeImage: image options: options reject: reject resolve: resolve cameraProperties: cameraProperties ];
241243 });
242244}
243245
@@ -247,21 +249,26 @@ - (void)storeImage:(UIImage *)image options:(NSDictionary *)options reject:(RCTP
247249RCT_EXPORT_METHOD (snapshotCamera:(NSDictionary *)options resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
248250 dispatch_async (dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0 ), ^{
249251 NSDictionary * selection = options[@" selection" ];
252+ NSDictionary * cameraProperties = [[ARKit sharedInstance ] readCamera ];
250253 UIImage *image = [[ARKit sharedInstance ] getSnapshotCamera: selection];
251- [self storeImage: image options: options reject: reject resolve: resolve];
254+ [self storeImage: image options: options reject: reject resolve: resolve cameraProperties: cameraProperties ];
252255 });
253256}
254257
255258RCT_EXPORT_METHOD (pickColorsRaw:(NSDictionary *)options resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
256-
257259 dispatch_async (dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0 ), ^{
258260
259261 NSDictionary * selection = options[@" selection" ];
260262 UIImage *image = [[ARKit sharedInstance ] getSnapshotCamera: selection];
261263 resolve ([[ColorGrabber sharedInstance ] getColorsFromImage: image options: options]);
262264 });
263-
264-
265+ }
266+
267+ RCT_EXPORT_METHOD (pickColorsRawFromFile:(NSString * )filePath options:(NSDictionary *)options resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
268+ dispatch_async (dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0 ), ^{
269+ UIImage *image = [UIImage imageWithContentsOfFile: filePath];
270+ resolve ([[ColorGrabber sharedInstance ] getColorsFromImage: image options: options]);
271+ });
265272}
266273
267274RCT_EXPORT_METHOD (getCamera:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
0 commit comments