【问题标题】:How to get real image.size in diff devices(iphone4s/5s/6/iPhone6+)?如何在不同的设备(iphone 4s/5s/6/iPhone 6s)中获得真实的 image.size?
【发布时间】:2015-05-27 09:11:28
【问题描述】:

原图文件PX as (24*50);

文件名为

“icon_detail_black.png”

在我的项目中;

使用此代码:

image_ = [UIImage imageNamed:@"icon_detail_black"];

然后是 diff devices 中的结果:

iphone 4s image_.size = (24*50)

iphone 5s image_.size = (12*25)  

iphone 6 image_.size = (12*25)  

iphone 6+ image_.size = (8*16.666666667) 

为什么?

我们能得到真正的原始尺寸吗?

我想按原样 (24*50) 获取图像大小(原始图像大小)。有什么解决办法吗?谢谢

注意:

“icon_detail_black.png”文件与“@3x”文件一样, 我只是设置名称“icon_detail_black.png”, 我不想添加其他文件: “icon_detail_black.png”和 "icon_detail_black@2x.png"

我只想使用一个文件 (@3x) 而不是三个文件,然后使用比例图像在 iphone4s/5s/6+ 中显示所有差异设备。所以我需要获取原始图像大小。

解决方案 20150528

UIImage *image_s = [UIImage imageNamed:@"DefaultImage_JNYJScrollImage"];
CGSize size_ = image_s.size;
CGFloat float_ = image_s.scale;

size_.width =  size_.width*float_;
size_.height =  size_.height*float_;

谢谢大家。

【问题讨论】:

    标签: ios iphone uiimage


    【解决方案1】:

    文件名“icon_detail_black.png”导致 IDE 将此尺寸渲染为 1x。 当您移动到 ​​5 秒时,它会缩放到 2 倍的分辨率,然后缩放到 6 倍,同样,对于 6+,它会缩放到 3 倍。 您应该有一张 4s 的图像,一张以 @2x 结尾的 5s-6 图像和一张以 @3x 结尾的 6+ 图像,每个图像都具有适合设备的分辨率。

    特别是对于您的情况,您应该:

    • "icon_detail_black.png" 24x50px
    • "icon_detail_black@2x.png" 48x100px
    • "icon_detail_black@3x.png" 72x150px

    添加到您的项目(考虑到 24x50)是 1x 的分辨率

    【讨论】:

    • 这个“icon_detail_black.png”文件和“@3x”文件一样,我只是设置名称“icon_detail_black.png”,我不想添加其他文件:“icon_detail_black.png”和“icon_detail_black@2x.png”我只想使用一个文件(@3x)而不是三个文件,然后使用比例图像在 iphone4s/5s/6+ 所有差异设备中显示。所以我需要获取原始图像大小。
    • 如果你只想使用1个文件,你只能将资源重命名为@3x,编译器自己调整大小。
    • 2 Vlad:我也这样做了,但结果都一样。
    【解决方案2】:

    为 1x 、 2x 和 3x 命名图标,如图所示:

    • icon_detail_black-50w (@1x)
    • icon_detail_black-100w (@2x)
    • icon_detail_black-150w (@3x)

    然后弄清楚你在运行时需要什么图像:

        NSNumber *screenWidth   = @([UIScreen mainScreen].bounds.size.width);
        NSString *imageName   = [NSString stringWithFormat:@"name-%@w", screenWidth];
        UIImage *image        = [UIImage imageNamed:imageName];
    

    【讨论】:

      【解决方案3】:

      4 详情:见问题详情:

      UIImage *image_s = [UIImage imageNamed:@"DefaultImage_JNYJScrollImage"];
      CGSize size_ = image_s.size;
      CGFloat float_ = image_s.scale;
      
      size_.width =  size_.width*float_;
      size_.height =  size_.height*float_;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多