| async function cropImage(imageUri, topLeftCoords, bottomRightCoords) { | |
| const { uri } = await ImageManipulator.manipulateAsync( | |
| imageUri, | |
| [ | |
| { | |
| crop: { | |
| originX: topLeftCoords.x, | |
| originY: topLeftCoords.y, | |
| width: bottomRightCoords.x - topLeftCoords.x, | |
| height: bottomRightCoords.y - topLeftCoords.y, | |
| }, | |
| }, | |
| ], | |
| { compress: 1, format: ImageManipulator.SaveFormat.JPEG } | |
| ); | |
| return uri; | |
| } | |
| export class ModelService { | |
| // ... (existing code) | |
| async classifyCroppedImages(image: ImageManipulator.ImageResult, topLeftCoords1, bottomRightCoords1, topLeftCoords2, bottomRightCoords2): Promise<IModelPredictionResponse[]> { | |
| const croppedImageUri1 = await cropImage(image.uri, topLeftCoords1, bottomRightCoords1); | |
| const croppedImageUri2 = await cropImage(image.uri, topLeftCoords2, bottomRightCoords2); | |
| const croppedImage1: ImageManipulator.ImageResult = await ImageManipulator.manipulateAsync( | |
| croppedImageUri1, | |
| [], | |
| { base64: true } | |
| ); | |
| const croppedImage2: ImageManipulator.ImageResult = await ImageManipulator.manipulateAsync( | |
| croppedImageUri2, | |
| [], | |
| { base64: true } | |
| ); | |
| const [predictionResponse1, predictionResponse2] = await Promise.all([ | |
| this.classifyImage(croppedImage1), | |
| this.classifyImage(croppedImage2), | |
| ]); | |
| return [predictionResponse1, predictionResponse2]; | |
| } | |
| } | |