[英]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結尾,每個圖像都具有適合該設備的分辨率。
特別是對於您的情況,您應該具有:
添加到您的項目中(考慮24x50)的分辨率是1x
將圖標命名為1x,2x和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.