//
|
// CropImageUtlis.m
|
// HDL_Widget_iOS
|
//
|
// Created by HDL on 2019/10/18.
|
// Copyright © 2019 JLChen. All rights reserved.
|
//
|
|
#import "CropImageUtlis.h"
|
//#import "UIImage+Crop.h"
|
//#import "CropImageController.h"
|
#import "UIImageCrop.h"
|
#import "HQImageEditViewController.h"
|
|
#define WEAKSELF_AT __weak __typeof(&*self)weakSelf_AT = self;
|
|
@interface CropImageUtlis ()<HQImageEditViewControllerDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
|
|
@property (nonatomic, strong) UIViewController * rootViewController;
|
@property (nonatomic, strong) NSString *mCropPicturePath; //图片路径
|
@property (nonatomic, strong) NSString *mCropFileName; //图片命名
|
|
|
@property (nonatomic, assign) int mRATIO_X;
|
@property (nonatomic, assign) int mRATIO_Y;
|
|
@property(nonatomic, copy) void (^didSaveImageCallBackBlock)(NSString *);
|
|
@end
|
|
@implementation CropImageUtlis
|
|
|
|
- (instancetype)initWithController:(UIViewController*)mUIViewController openType:(int)openType fileName:(NSString*)fileName mRATIO_X:(int)mRATIO_X mRATIO_Y:(int)mRATIO_Y callBackBlock:(void (^)(NSString *))callBackBlock{
|
self = [super init];
|
if(self){
|
_rootViewController = mUIViewController;
|
_openType = openType;
|
_didSaveImageCallBackBlock = callBackBlock;
|
if(fileName == nil || fileName.length == 0 ){
|
_mCropFileName = @"hdl_headPicture";
|
}else{
|
_mCropFileName = fileName;
|
}
|
|
_mRATIO_X = mRATIO_X;
|
_mRATIO_Y = mRATIO_Y;
|
|
if(_openType == 101){
|
[self openTypeCamera];
|
}else{
|
[self openTypePhotoLibrary];
|
}
|
}
|
return self;
|
|
|
}
|
|
#pragma mark - 上传头像
|
-(void)openTypeCamera{
|
// WEAKSELF_AT
|
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
|
imagePickerController.delegate = self;
|
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
|
if(@available(iOS 13.0, *)) {
|
imagePickerController.modalPresentationStyle = UIModalPresentationOverFullScreen;
|
}
|
[_rootViewController presentViewController:imagePickerController animated:YES completion:nil];
|
|
|
// _mUIImagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
|
//
|
// [_rootViewController presentViewController:_mUIImagePickerController animated:YES completion:nil];
|
}
|
|
-(void)openTypePhotoLibrary;{
|
// WEAKSELF_AT
|
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
|
imagePickerController.delegate = self;
|
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
|
if(@available(iOS 13.0, *)) {
|
imagePickerController.modalPresentationStyle = UIModalPresentationOverFullScreen;
|
}
|
[_rootViewController presentViewController:imagePickerController animated:YES completion:nil];
|
//
|
// _mUIImagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
|
//
|
// [_rootViewController presentViewController:_mUIImagePickerController animated:YES completion:nil];
|
|
}
|
|
#pragma mark -- UIImagePickerControllerDelegate
|
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
|
[picker dismissViewControllerAnimated:YES completion:nil];
|
// [picker dismissViewControllerAnimated:YES completion:^{
|
//
|
// }];
|
// [picker dismissViewControllerAnimated:YES completion:^{
|
// UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
|
// CropImageController * con = [[CropImageController alloc] initWithImage:image delegate:self];
|
// [self.navigationController pushViewController:con animated:YES];
|
// }];
|
|
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
|
CGFloat width = [UIScreen mainScreen].bounds.size.width;
|
CGFloat height = image.size.height * (width/image.size.width);
|
// UIImage * orImage = [image resizeImageWithSize:CGSizeMake(width, height)];
|
|
UIImage * orImage = [UIImageCrop resizeImageWithSize:image newSize:CGSizeMake(width, height)];
|
|
HQImageEditViewController * mCropImageController = [[HQImageEditViewController alloc] initWithImage:orImage delegate:self];
|
mCropImageController.mCropFileName = _mCropFileName;
|
mCropImageController.mRATIO_X = _mRATIO_X;
|
mCropImageController.mRATIO_Y = _mRATIO_Y;
|
mCropImageController.maskViewAnimation = YES;
|
|
// [_rootViewController.navigationController pushViewController:mCropImageController animated:YES];
|
if(@available(iOS 13.0, *)) {
|
mCropImageController.modalPresentationStyle = UIModalPresentationOverFullScreen;
|
}
|
|
[_rootViewController presentViewController:mCropImageController animated:YES completion:nil];
|
}
|
|
// 取消图片选择调用此方法
|
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
|
[picker dismissViewControllerAnimated:YES completion:nil];
|
[self backAction:NO];
|
}
|
|
|
|
-(void)backAction:(BOOL)bSuccess{
|
if(bSuccess){
|
// if(self.mSaveImageCallBackDelegate != NULL){
|
// [self.mSaveImageCallBackDelegate SaveImageCallBackUtlis:_mCropPicturePath];
|
//// NSLog(@"关闭页面");
|
// }
|
if(_didSaveImageCallBackBlock){
|
_didSaveImageCallBackBlock(_mCropPicturePath);
|
}
|
}else{
|
if(_didSaveImageCallBackBlock){
|
_didSaveImageCallBackBlock(nil);
|
}
|
}
|
// [_rootViewController.navigationController popViewControllerAnimated:YES];
|
}
|
|
|
#pragma mark -- CropImageDelegate
|
- (void)cropImageDidFinishedWithImage:(NSString *)imageName bSuccess:(BOOL)bSuccess{
|
|
if(bSuccess){
|
_mCropPicturePath = imageName;
|
[self backAction:bSuccess];
|
}else{
|
[self backAction:bSuccess];
|
}
|
|
}
|
|
@end
|