簡體   English   中英

如何在差異設備(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 +中顯示所有diff設備。 所以我需要獲取原始圖像尺寸。

解決方案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將此尺寸渲染1倍。 當您移至5s時,會將縮放至2倍的分辨率,然后將其縮放至6倍,相同的分辨率則為6+,將其縮放至3倍。 您應該擁有一張用於4s的圖像,一張用於5s-6的圖像以@ 2x結尾,另一張用於6+的圖像以@ 3x結尾,每個圖像都具有適合該設備的分辨率。

特別是對於您的情況,您應該具有:

  • “ 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_;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM