setProductImageCrop static method

Future<String?> setProductImageCrop({
  1. required String barcode,
  2. required ImageField imageField,
  3. required OpenFoodFactsLanguage language,
  4. required String imgid,
  5. required int x1,
  6. required int y1,
  7. required int x2,
  8. required int y2,
  9. required User user,
  10. ImageAngle angle = ImageAngle.NOON,
  11. UriProductHelper uriHelper = uriHelperFoodProd,
})

Crops an already uploaded image.

"I want, for this barcode, this imageField and this language, the image to be computed from the already uploaded image referenced by imgid, with a possible rotation of angle and then a cropping on rectangle (x1,y1,x2,y2), those coordinates being taken from the uploaded image size.

Returns the URL to the "display" picture after the operation. Returns null if KO, but would probably throw an exception instead.

Implementation

static Future<String?> setProductImageCrop({
  required final String barcode,
  required final ImageField imageField,
  required final OpenFoodFactsLanguage language,
  required final String imgid,
  required final int x1,
  required final int y1,
  required final int x2,
  required final int y2,
  required final User user,
  final ImageAngle angle = ImageAngle.NOON,
  final UriProductHelper uriHelper = uriHelperFoodProd,
}) async =>
    _callProductImageCrop(
      barcode: barcode,
      imageField: imageField,
      language: language,
      imgid: imgid,
      user: user,
      extraParameters: <String, String>{
        'x1': x1.toString(),
        'y1': y1.toString(),
        'x2': x2.toString(),
        'y2': y2.toString(),
        'angle': angle.degreesClockwise,
        'coordinates_image_size': 'full',
      },
      uriHelper: uriHelper,
    );