如何在不同的设备(iphone4s/5s/6/iPhone6+)中获得真实的image.size?
How to get real image.size in diff devices(iphone4s/5s/6/iPhone6+)?
原始图片文件PX as (24*50)
;
文件名为
"icon_detail_black.png"
在我的项目中;
使用此代码:
image_ = [UIImage imageNamed:@"icon_detail_black"];
然后差异设备的结果:
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_;
谢谢大家
文件名 "icon_detail_black.png" 导致 IDE 渲染此维度 1x。
当你移动到 5s 时,它缩放到 2x 的分辨率,然后是 6s,同样,对于 6+,它缩放到 3x。
您应该有一张 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 的分辨率
如图所示为 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];
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_;
原始图片文件PX as (24*50)
;
文件名为
"icon_detail_black.png"
在我的项目中;
使用此代码:
image_ = [UIImage imageNamed:@"icon_detail_black"];
然后差异设备的结果:
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_;
谢谢大家
文件名 "icon_detail_black.png" 导致 IDE 渲染此维度 1x。 当你移动到 5s 时,它缩放到 2x 的分辨率,然后是 6s,同样,对于 6+,它缩放到 3x。 您应该有一张 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 的分辨率
如图所示为 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];
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_;