Commit e5023b22872513c643b92c9e422aae9b02f1e0cb

Authored by iOS-Xiaowen
1 parent b9847b56

no message

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>
... ...