react-native-camera-kit/ios/lib/ReactNativeCameraKit/CKCompressedImage.m

49 lines
1.3 KiB
Objective-C

//
// CKCompressedImage.m
// ReactNativeCameraKit
//
// Created by Sergey Ilyevsky on 15/05/2017.
// Copyright © 2017 Wix. All rights reserved.
//
#import "CKCompressedImage.h"
@implementation CKCompressedImage
- (instancetype)initWithImage:(UIImage *)image imageQuality:(NSString*)imageQuality
{
if(self = [super init]) {
CGFloat max = 1200.0f;
if ([imageQuality isEqualToString:@"high"]) {
max = 1200.0f;
}
else if ([imageQuality isEqualToString:@"medium"]) {
max = 800.0f;
}
else {
_image = image;
_data = UIImageJPEGRepresentation(image, 1.0f);
}
float actualHeight = image.size.height;
float actualWidth = image.size.width;
float imgRatio = actualWidth/actualHeight;
float newHeight = (actualHeight > actualWidth) ? max : max/imgRatio;
float newWidth = (actualHeight > actualWidth) ? max*imgRatio : max;
CGRect rect = CGRectMake(0.0, 0.0, newWidth, newHeight);
UIGraphicsBeginImageContext(rect.size);
[image drawInRect:rect];
_image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
_data = UIImageJPEGRepresentation(_image, 0.85f);
}
return self;
}
@end