[image_picker] Fix If imageToScale is nil, the app will crash (#146682) (#6514)

Fix https://github.com/flutter/flutter/issues/146682

Pre-launch Checklist
diff --git a/packages/image_picker/image_picker_ios/CHANGELOG.md b/packages/image_picker/image_picker_ios/CHANGELOG.md
index 787524c..daff285 100644
--- a/packages/image_picker/image_picker_ios/CHANGELOG.md
+++ b/packages/image_picker/image_picker_ios/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.8.10+1
+
+* Fixes a possible crash when calling a picker method UIGraphicsImageRenderer if imageToScale is nil.
+
 ## 0.8.10
 
 * Adds limit parameter to `MediaOptions` and `MultiImagePickerOptions` that sets a limit to how many media or image items can be selected.
diff --git a/packages/image_picker/image_picker_ios/example/ios/RunnerTests/ImageUtilTests.m b/packages/image_picker/image_picker_ios/example/ios/RunnerTests/ImageUtilTests.m
index 5566e1d..c533242 100644
--- a/packages/image_picker/image_picker_ios/example/ios/RunnerTests/ImageUtilTests.m
+++ b/packages/image_picker/image_picker_ios/example/ios/RunnerTests/ImageUtilTests.m
@@ -217,4 +217,24 @@
   XCTAssertEqual(newImage.size.height, 7);
 }
 
+- (void)testScaledImage_ImageIsNil {
+  UIImage *image = nil;
+  UIImage *newImage = [FLTImagePickerImageUtil scaledImage:image
+                                                  maxWidth:@1440
+                                                 maxHeight:@1440
+                                       isMetadataAvailable:YES];
+
+  XCTAssertEqual(newImage, nil);
+}
+
+- (void)testScaledImage_ImageMaxWidthZeroAndMaxHeightIsZero {
+  UIImage *image = [UIImage imageWithData:ImagePickerTestImages.JPGTestData];
+  UIImage *newImage = [FLTImagePickerImageUtil scaledImage:image
+                                                  maxWidth:@0
+                                                 maxHeight:@0
+                                       isMetadataAvailable:YES];
+
+  XCTAssertEqual(newImage, nil);
+}
+
 @end
diff --git a/packages/image_picker/image_picker_ios/ios/Classes/FLTImagePickerImageUtil.m b/packages/image_picker/image_picker_ios/ios/Classes/FLTImagePickerImageUtil.m
index 5476328..d71175d 100644
--- a/packages/image_picker/image_picker_ios/ios/Classes/FLTImagePickerImageUtil.m
+++ b/packages/image_picker/image_picker_ios/ios/Classes/FLTImagePickerImageUtil.m
@@ -29,6 +29,9 @@
 @implementation FLTImagePickerImageUtil : NSObject
 
 static UIImage *FLTImagePickerDrawScaledImage(UIImage *imageToScale, double width, double height) {
+  if (imageToScale == nil || width == 0 || height == 0) {
+    return nil;
+  }
   UIGraphicsImageRenderer *imageRenderer =
       [[UIGraphicsImageRenderer alloc] initWithSize:CGSizeMake(width, height)
                                              format:imageToScale.imageRendererFormat];
diff --git a/packages/image_picker/image_picker_ios/pubspec.yaml b/packages/image_picker/image_picker_ios/pubspec.yaml
index 70d578b..d57e2b6 100755
--- a/packages/image_picker/image_picker_ios/pubspec.yaml
+++ b/packages/image_picker/image_picker_ios/pubspec.yaml
@@ -2,7 +2,7 @@
 description: iOS implementation of the image_picker plugin.
 repository: https://github.com/flutter/packages/tree/main/packages/image_picker/image_picker_ios
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+image_picker%22
-version: 0.8.10
+version: 0.8.10+1
 
 environment:
   sdk: ^3.3.0