ios開發(fā)之顯示一個真實(shí)長寬為4X2厘米的圖片

ios開發(fā)之顯示一個真實(shí)長寬為4X2厘米的圖片

單位:

px:像素,構(gòu)成影像的最小單位

ppi:Pixels Per Inch,即每英寸所擁有的像素數(shù)目,屏幕像素密度

pt:iOS開發(fā)單位,即point,

我們先求一下ppi

公式:

iPhone 3G 的 ppi 計算:

iPhone 3G 的屏幕像素密度 ppi 是每英寸 163 個像素,而蘋果又規(guī)定在這種非視網(wǎng)膜的 iPhone 上,1pt=1px,所以我們也可以說每英寸上有 163 個 pt,那么 1pt=1/163 英寸,這就是 iOS 開發(fā)單位 pt 的長度:1pt = 1 /163 英寸 * 25.4毫米 ≈ 0.16 毫米。


所以根據(jù)上面的公式進(jìn)行計算:


//獲取手機(jī)的屏幕尺寸(英寸)

+ (double)deviceTypeSizeInches

{

? ? structutsnamesystemInfo;

? ? uname(&systemInfo);

? ? NSString *platform = [NSString stringWithCString:systemInfo.machine encoding:NSASCIIStringEncoding];


? ? //------------------------------iPhone---------------------------

? ? //"iPhone 2G"

? ? if([platformisEqualToString:@"iPhone1,1"])return3.5;

? ? //"iPhone 3G"

? ? if([platformisEqualToString:@"iPhone1,2"])return3.5;

? ? //"iPhone 3GS"

? ? if([platformisEqualToString:@"iPhone2,1"])return3.5;

? ? //"iPhone 4"

? ? if([platformisEqualToString:@"iPhone3,1"] ||

? ? ? ? [platformisEqualToString:@"iPhone3,2"] ||

? ? ? ? [platformisEqualToString:@"iPhone3,3"])return3.5;

? ? //"iPhone 4S"

? ? if([platformisEqualToString:@"iPhone4,1"])return3.5;

? ? //"iPhone 5"

? ? if([platformisEqualToString:@"iPhone5,1"] ||

? ? ? ? [platformisEqualToString:@"iPhone5,2"])return4.0;

? ? //"iPhone 5c"

? ? if([platformisEqualToString:@"iPhone5,3"] ||

? ? ? ? [platformisEqualToString:@"iPhone5,4"])return4.0;

? ? //"iPhone 5s"

? ? if([platformisEqualToString:@"iPhone6,1"] ||

? ? ? ? [platformisEqualToString:@"iPhone6,2"])return4.0;

? ? //"iPhone 6"

? ? if([platformisEqualToString:@"iPhone7,2"])return4.7;

? ? //"iPhone 6 Plus"

? ? if([platformisEqualToString:@"iPhone7,1"])return5.5;

? ? //"iPhone 6s"

? ? if([platformisEqualToString:@"iPhone8,1"])return4.7;

? ? //"iPhone 6s Plus"

? ? if([platformisEqualToString:@"iPhone8,2"])return5.5;

? ? //"iPhone SE"

? ? if([platformisEqualToString:@"iPhone8,4"])return4.0;

? ? //"iPhone 7"

? ? if([platformisEqualToString:@"iPhone9,1"] ||

? ? ? ? [platformisEqualToString:@"iPhone9,3"])return4.7;

? ? //"iPhone 7 Plus"

? ? if([platformisEqualToString:@"iPhone9,2"] ||

? ? ? ? [platformisEqualToString:@"iPhone9,4"])return5.5;

? ? //"iPhone 8"

? ? if([platformisEqualToString:@"iPhone10,1"] ||

? ? ? ? [platformisEqualToString:@"iPhone10,4"])return4.7;

? ? //"iPhone 8 Plus"

? ? if([platformisEqualToString:@"iPhone10,2"] ||

? ? ? ? [platformisEqualToString:@"iPhone10,5"])return5.5;

? ? //"iPhone X"

? ? if([platformisEqualToString:@"iPhone10,3"] ||

? ? ? ? [platformisEqualToString:@"iPhone10,6"])return5.8;

? ? //"iPhone XR"

? ? if([platformisEqualToString:@"iPhone11,8"])return6.1;

? ? //"iPhone XS"

? ? if([platformisEqualToString:@"iPhone11,2"])return5.8;

? ? //"iPhone XS Max"

? ? if([platformisEqualToString:@"iPhone11,4"] ||

? ? ? ? [platformisEqualToString:@"iPhone11,6"])return6.5;

? ? //"iPhone 11

? ? if([platformisEqualToString:@"iPhone12,1"])return6.1;

? ? //"iPhone 11 Pro"

? ? if([platformisEqualToString:@"iPhone12,3"])return5.8;

? ? //"iPhone 11 Pro Max"

? ? if([platformisEqualToString:@"iPhone12,5"])return6.5;



? ? return 4.0;

}



////////////////

_cheimageview.image=[UIImage imageNamed:@"icon-01.jpg"];

? ? //獲取手機(jī)的屏幕尺寸(英寸)

? ? double pmsize=[GlobalValue deviceTypeSizeInches];

? ? //計算ppi

? ? double ppi = sqrt( Screen_Width*Screen_Width + Screen_Height*Screen_Height ) / pmsize ;

? ? NSLog(@"寬度:%f;ppi:%f",Screen_Width,ppi);

? ? //iphoneX 寬度:375.000000;ppi:154.208597

? ? //iphone SE 寬度:320.000000;ppi:162.984662

? ? //

? ? //154.208597/162.984662*192.55;

? ? //pt 的長度(毫米)

? ? doublept=1.0/ppi *25.4;

? ? NSString*str=[NSStringstringWithFormat:@"%.4f", pt];

? ? doubleff=[strdoubleValue];

? ? _cheimageWidth.constant=40.0/ff;

? ? _cheimageHeight.constant=20.0/ff;?

? ? NSLog(@"圖片寬度:%f",40.0/ff);



這樣就可以實(shí)現(xiàn)上面的需求了。


文章參考了:

iOS尺寸單位pt、ppi與px之間換算關(guān)系

ios開發(fā)之--所有設(shè)備的屏幕尺寸

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容