拍照上传图片的压缩

来源:互联网 发布:算法竞赛书籍推荐 知乎 编辑:程序博客网 时间:2024/04/30 12:04

#pragma mark - UIImagePickerController delegate
//选择玩图片成功回调
- (
void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString*,id> *)info{
    [
HITAudioPlayerManagerInstacnestartPalyAudioByFileName:@"bt_back"andType:@"wav"];
    [picker
dismissViewControllerAnimated:YEScompletion:nil];
   
if (self.type== 1) {
       
if ([self.delegaterespondsToSelector:@selector(selectImageBackWithImage:)]) {
            [
self.delegateselectImageBackWithImage:self.topShowImageView.image];
            [
self.navigationControllerpopViewControllerAnimated:YES];
           
return;
        }
    }
//    HITSubmitImageViewController *submitImageVC =  [[HITSubmitImageViewController alloc]init];
//    submitImageVC.submitImage = info[@"UIImagePickerControllerOriginalImage"];
//    [self.navigationController pushViewController:submitImageVC animated:YES];
//    UIImage *imageNew = [self scaleToSize:info[@"UIImagePickerControllerOriginalImage"] size:CGSizeMake(kSCREEN_WIDTH, kSCREEN_HEIGHT - 100)];//上传拍照图片的处理
   
UIImage *image = [selfcompressImage:info[@"UIImagePickerControllerOriginalImage"]newWidth:(kSCREEN_WIDTH,kSCREEN_HEIGHT - 100)];
//    UIImage *imageNew = [info objectForKey:@"UIImagePickerControllerEditedImage"];
//    NSData *updata = UIImageJPEGRepresentation(imageNew,0.5f);
//     UIImage *image = [UIImage imageWithData: updata];
   
AGViewController *agview = [[AGViewControlleralloc]init];
    agview.
imagess= image;//UIImagePickerControllerEditedImage修改后的图片//UIImagePickerControllerOriginalImage原始图片//info[@"UIImagePickerControllerOriginalImage"]
    agview.
delegateImage= self;
    [
selfpresentViewController:agviewanimated:YEScompletion:nil];

}
/**
 * 等比缩放本图片大小
 *
 *  @param newImageWidth
缩放后图片宽度,像素为单位
 *
 *  @return self-->(image)
 */

- (
UIImage*)compressImage:(UIImage*)image newWidth:(CGFloat)newImageWidth
{
   
if (!image)return nil;
   
float imageWidth = image.size.width;
   
float imageHeight = image.size.height;
   
float width = newImageWidth;
   
float height = image.size.height/(image.size.width/width);
   
   
float widthScale = imageWidth /width;
   
float heightScale = imageHeight /height;
   
   
// 创建一个bitmapcontext
   
// 并把它设置成为当前正在使用的context
   
UIGraphicsBeginImageContext(CGSizeMake(width, height));
   
   
if (widthScale > heightScale) {
        [image
drawInRect:CGRectMake(0,0, imageWidth /heightScale , height)];
    }
   
else {
        [image
drawInRect:CGRectMake(0,0, width , imageHeight /widthScale)];
    }
   
   
// 从当前context中创建一个改变大小后的图片
   
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
   
// 使当前的context出堆栈
   
UIGraphicsEndImageContext();
   
   
return newImage;
   
}
0 0
原创粉丝点击