Commit e5023b22872513c643b92c9e422aae9b02f1e0cb
1 parent
b9847b56
no message
Showing
2 changed files
with
78 additions
and
1 deletions
CNLiveBMineModule/Classes/UserInfo/CNLiveInfoUpdateController.m
| ... | ... | @@ -401,7 +401,8 @@ static const CGFloat timeValue = 1.5; |
| 401 | 401 | // 固定方向 |
| 402 | 402 | image = [image fixOrientation]; |
| 403 | 403 | //压缩图片质量 |
| 404 | - image = [self reduceImage:image percent:0.5]; | |
| 404 | +// image = [self reduceImage:image percent:0.5]; | |
| 405 | + image = [self thumbnailWithImage:image size:CGSizeMake(SCREEN_WIDTH, SCREEN_WIDTH)]; | |
| 405 | 406 | [QMUITips showLoading:@"修改中" inView:self.view]; |
| 406 | 407 | |
| 407 | 408 | [CNLiveUserSystemCenter uploadIconWithUid:CNUserShareModel.uid icon:image compressionQuality:0.99 success:^(id result) { |
| ... | ... | @@ -426,6 +427,72 @@ static const CGFloat timeValue = 1.5; |
| 426 | 427 | UIImage *newImage = [UIImage imageWithData:imageData]; |
| 427 | 428 | return newImage; |
| 428 | 429 | } |
| 430 | +// 剪裁图片 | |
| 431 | +- (UIImage *)thumbnailWithImage:(UIImage *)originalImage size:(CGSize)size { | |
| 432 | + CGSize originalsize = [originalImage size]; | |
| 433 | + //原图长宽均小于标准长宽的,不作处理返回原图 | |
| 434 | + if (originalsize.width<size.width && originalsize.height<size.height) { | |
| 435 | + return originalImage; | |
| 436 | + } | |
| 437 | + //原图长宽均大于标准长宽的,按比例缩小至最大适应值 | |
| 438 | + else if(originalsize.width>size.width && originalsize.height>size.height) { | |
| 439 | + CGFloat rate = 1.0; | |
| 440 | + CGFloat widthRate = originalsize.width/size.width; | |
| 441 | + CGFloat heightRate = originalsize.height/size.height; | |
| 442 | + | |
| 443 | + rate = widthRate>heightRate?heightRate:widthRate; | |
| 444 | + | |
| 445 | + CGImageRef imageRef = nil; | |
| 446 | + | |
| 447 | + if (heightRate>widthRate) { | |
| 448 | + imageRef = CGImageCreateWithImageInRect([originalImage CGImage], CGRectMake(0, originalsize.height/2-size.height*rate/2, originalsize.width, size.height*rate));//获取图片整体部分 | |
| 449 | + } else { | |
| 450 | + imageRef = CGImageCreateWithImageInRect([originalImage CGImage], CGRectMake(originalsize.width/2-size.width*rate/2, 0, size.width*rate, originalsize.height));//获取图片整体部分 | |
| 451 | + } | |
| 452 | + UIGraphicsBeginImageContext(size);//指定要绘画图片的大小 | |
| 453 | + CGContextRef con = UIGraphicsGetCurrentContext(); | |
| 454 | + CGContextTranslateCTM(con, 0.0, size.height); | |
| 455 | + CGContextScaleCTM(con, 1.0, -1.0); | |
| 456 | + CGContextDrawImage(con, CGRectMake(0, 0, size.width, size.height), imageRef); | |
| 457 | + | |
| 458 | + UIImage *standardImage = UIGraphicsGetImageFromCurrentImageContext(); | |
| 459 | + UIGraphicsEndImageContext(); | |
| 460 | + CGImageRelease(imageRef); | |
| 461 | + return standardImage; | |
| 462 | + | |
| 463 | + } | |
| 464 | + //原图长宽有一项大于标准长宽的,对大于标准的那一项进行裁剪,另一项保持不变 | |
| 465 | + else if(originalsize.height>size.height || originalsize.width>size.width) { | |
| 466 | + CGImageRef imageRef = nil; | |
| 467 | + if(originalsize.height>size.height) { | |
| 468 | + imageRef = CGImageCreateWithImageInRect([originalImage CGImage], CGRectMake(0, originalsize.height/2-size.height/2, originalsize.width, size.height));//获取图片整体部分 | |
| 469 | + } else if (originalsize.width>size.width) { | |
| 470 | + imageRef = CGImageCreateWithImageInRect([originalImage CGImage], CGRectMake(originalsize.width/2-size.width/2, 0, size.width, originalsize.height));//获取图片整体部分 | |
| 471 | + } | |
| 472 | + UIGraphicsBeginImageContext(size);//指定要绘画图片的大小 | |
| 473 | + CGContextRef con = UIGraphicsGetCurrentContext(); | |
| 474 | + | |
| 475 | + CGContextTranslateCTM(con, 0.0, size.height); | |
| 476 | + | |
| 477 | + CGContextScaleCTM(con, 1.0, -1.0); | |
| 478 | + | |
| 479 | + CGContextDrawImage(con, CGRectMake(0, 0, size.width, size.height), imageRef); | |
| 480 | + | |
| 481 | + UIImage *standardImage = UIGraphicsGetImageFromCurrentImageContext(); | |
| 482 | + | |
| 483 | + NSLog(@"改变后图片的宽度为%f,图片的高度为%f",[standardImage size].width,[standardImage size].height); | |
| 484 | + | |
| 485 | + UIGraphicsEndImageContext(); | |
| 486 | + | |
| 487 | + CGImageRelease(imageRef); | |
| 488 | + return standardImage; | |
| 489 | + | |
| 490 | + } | |
| 491 | + //原图为标准长宽的,不做处理 | |
| 492 | + else { | |
| 493 | + return originalImage; | |
| 494 | + } | |
| 495 | +} | |
| 429 | 496 | |
| 430 | 497 | // 保存图片 |
| 431 | 498 | - (void)saveImage:(UIImage *)image{ | ... | ... |
Example/CNLiveBMineModule/CNLiveBMineModule-Info.plist
| ... | ... | @@ -285,6 +285,16 @@ |
| 285 | 285 | <key>NSAllowsArbitraryLoads</key> |
| 286 | 286 | <true/> |
| 287 | 287 | </dict> |
| 288 | + <key>NSCameraUsageDescription</key> | |
| 289 | + <string>需要允许开启相机才能在直播和修改头像时使用录制视频和拍照功能</string> | |
| 290 | + <key>NSLocationWhenInUseUsageDescription</key> | |
| 291 | + <string>需要允许使用您的位置信息才能获取您所在的城市</string> | |
| 292 | + <key>NSMicrophoneUsageDescription</key> | |
| 293 | + <string>需要允许开启麦克风才能使用直播等服务</string> | |
| 294 | + <key>NSPhotoLibraryAddUsageDescription</key> | |
| 295 | + <string>需要允许打开相册才能访问相册照片</string> | |
| 296 | + <key>NSPhotoLibraryUsageDescription</key> | |
| 297 | + <string>需要允许打开相册才能访问相册照片和保存照片</string> | |
| 288 | 298 | <key>CFBundleDevelopmentRegion</key> |
| 289 | 299 | <string>en</string> |
| 290 | 300 | <key>CFBundleDisplayName</key> | ... | ... |