|
@@ -0,0 +1,44 @@
|
|
|
+
|
|
|
+using System;
|
|
|
+using System.IO;
|
|
|
+using CoreGraphics;
|
|
|
+using Foundation;
|
|
|
+using UIKit;
|
|
|
+
|
|
|
+[assembly: Xamarin.Forms.Dependency(typeof(InABox.Mobile.iOS.ImageToolsiOS))]
|
|
|
+namespace InABox.Mobile.iOS
|
|
|
+{
|
|
|
+
|
|
|
+ public class ImageToolsiOS : IImageTools
|
|
|
+ {
|
|
|
+
|
|
|
+ public byte[] CreateThumbnail(byte[] source, float maxwidth, float maxheight)
|
|
|
+ {
|
|
|
+ byte[] result = { };
|
|
|
+ using (UIImage src = UIImage.LoadFromData(NSData.FromArray(source)))
|
|
|
+ {
|
|
|
+ if (src != null)
|
|
|
+ {
|
|
|
+ if ((src.Size.Width > 0.0F) && (src.Size.Height > 0.0F))
|
|
|
+ {
|
|
|
+ var maxFactor = Math.Min(maxwidth / src.Size.Width, maxheight / src.Size.Height);
|
|
|
+ var width = maxFactor * src.Size.Width;
|
|
|
+ var height = maxFactor * src.Size.Height;
|
|
|
+ UIGraphics.BeginImageContextWithOptions(new CGSize((float)width, (float)height), true, 1.0f);
|
|
|
+ src.Draw(new CGRect(0, 0, (float)width, (float)height));
|
|
|
+ var tgt = UIGraphics.GetImageFromCurrentImageContext();
|
|
|
+ UIGraphics.EndImageContext();
|
|
|
+
|
|
|
+ using (NSData imageData = tgt.AsJPEG())
|
|
|
+ {
|
|
|
+ result = new byte[imageData.Length];
|
|
|
+ System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, result, 0,
|
|
|
+ Convert.ToInt32(imageData.Length));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|