【问题标题】:UIImage small+medium+large like apple MailUIImage small+medium+large like apple Mail
【发布时间】:2012-04-02 05:41:19
【问题描述】:

有没有在中小型环境下获取图像尺寸的参考教程。

我只是想知道图像尺寸的宽度和高度的计算,当它像苹果邮件中的小、中或大时,我们如何计算以像素为单位的 UIImage 大小。

就像我们在邮件中附加图片时,它要求小、中、大..

请不要提供this,因为我已经完成了这个..

提前致谢。

【问题讨论】:

  • 就像我们在邮件中附加图片时一样,它会询问小、中、大……那个选项??我也在寻找那个解决方案。
  • @anonymous 是的,亲爱的,只是在寻找那个
  • 嗯。我会收藏这个问题..
  • 这些名字没有什么特别之处。 Mac OS 10.7 上的邮件似乎使用小 => 320,中 => 640,大 => 1280。它缩放图像,因此它们的最长边被限制为以像素为单位的相关长度。如果您想在您的应用程序中提供匹配的缩放,请使用这些尺寸。但是,Mail 可能会在未来的版本中发生变化。
  • 我和你说的一样,谢谢回复

标签: iphone objective-c ios ipad uiimage


【解决方案1】:

最后从很多解决方案中看到我得到了以下解决方案并根据此完成了代码。

我们可以得到如下图片。

Small = 320 pixels on longest edge JPEG
Medium = 640 pixels on longest edge JPEG
Large =  1296 pixels on longest edge JPEG

其中 typeOfImage = 0,1,2 分别代表小型、中型和大型。

-(CGSize)getImageWithRespectiveSize:(UIImage *)pImage withType:(NSInteger)typeOfImg
{
    CGSize pSize;
    if(typeOfImg == 0)
        pSize = [self getCGSizesOfImages:320 andImage:pImage];
    else if(typeOfImg == 1)
        pSize = [self getCGSizesOfImages:640 andImage:pImage];
    else if(typeOfImg == 2)
        pSize = [self getCGSizesOfImages:1296 andImage:pImage];
    else 
        pSize = CGSizeMake(pImage.size.width, pImage.size.height);

    return pSize;
}

-(CGSize)getCGSizesOfImages:(NSInteger)pIntPixels andImage:(UIImage *)pImage
{
    CGSize pSize;
    if(pImage.size.width > pImage.size.height)
    {
        CGFloat tmp = pImage.size.height/pImage.size.width*pIntPixels;
        pSize = CGSizeMake(pIntPixels, tmp);
    }
    else if(pImage.size.width < pImage.size.height)
    {
        CGFloat tmp = pImage.size.width/pImage.size.height*pIntPixels;
        pSize =  CGSizeMake(tmp, pIntPixels);       
    }   
    else
    {
        CGFloat tmp = pImage.size.height/pImage.size.width*pIntPixels;
        pSize =  CGSizeMake(tmp, pIntPixels);       
    }
    return pSize;
}

并像这样调用函数

CGSize size = [self getImageWithRespectiveSize:imgOriginal withType:0];

【讨论】:

    【解决方案2】:

    你可以使用 imageIO 框架,它很容易设置一个方法来调整图像大小。周围有很多样例,这里是谷歌上的第一个热门,它也用核心图形解释了经典的方式。 uiimage scaling
    [编辑]
    如果您正在寻找如何以字节为单位获取大小,您可以查看来自 Apple Large Image Downsizing

    的此示例代码

    【讨论】:

      猜你喜欢
      • 2010-11-26
      • 2016-06-05
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 2013-09-30
      • 2015-06-27
      • 1970-01-01
      • 2016-05-19
      相关资源
      最近更新 更多