繁体   English   中英

您如何正确裁剪UIImage

[英]How do you crop a UIImage correctly

我有一个UIImage,它具有横向方向,我想在保持宽高比的同时将边缘切掉以使其成为纵向。

  UIImage *photo = myUIImage;

  // width = 3264
  float width = photo.size.width;

  // height = 2448
  float height = photo.size.height;

在切掉左右边缘(保持中心)时,我也需要使其具有以下尺寸:

  width = 1836
  height = 2448

idk,如果有帮助,但这是iPod,iPad,iPhone的正确尺寸

if ([[UIScreen mainScreen] bounds].size.height == 480)
{
    // iPhone, iPod Touch
    Image = [UIImage imageNamed:@"7.jpg"];
}

if ([[UIScreen mainScreen] bounds].size.height == 568)
{
    // iPhone 5
    Image = [UIImage imageNamed:@"7.jpg"];
}

if ([[UIScreen mainScreen] bounds].size.height == 1024)
{
    // iPad
    Image = [UIImage imageNamed:@"11@2x.jpg"];
}

self.view.backgroundColor = [UIColor colorWithPatternImage:Image];

尝试这个:

- (UIImage *)scaleOldImage:(UIImage *)orig toNewSize:(CGSize)finalSize {


CGSize origSize = orig.size;

CGFloat wScale = finalSize.width / origSize.width;
CGFloat hScale = finalSize.height / origSize.height;
CGFloat finalScale = (wScale > hScale) ? wScale : hScale;

CGRect finalRect = CGRectMake( 0, 0, origSize.width * finalScale, origSize.height * finalScale );
finalRect.origin.x = ( finalSize.width - finalRect.size.width )/2;
finalRect.origin.y = ( finalSize.height - finalRect.size.height )/2;

UIGraphicsBeginImageContextWithOptions( finalSize, YES, 0.0 );
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetInterpolationQuality(context, kCGInterpolationHigh);

[orig drawInRect:finalRect];
UIImage * finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return finalImage;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM