49 lines
1.3 KiB
Objective-C
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
|