অ্যাপলের ওয়েবসাইট দাবি করেছে যে রেজোলিউশনটি 1080p: 1920 x 1080
যাইহোক, এক্সকোড দ্বারা প্রয়োজনীয় লঞ্চ স্ক্রিন (আজ চালু করা 8.0 জিএম) 2208 x 1242।
কে ঠিক আছে?
অ্যাপলের ওয়েবসাইট দাবি করেছে যে রেজোলিউশনটি 1080p: 1920 x 1080
যাইহোক, এক্সকোড দ্বারা প্রয়োজনীয় লঞ্চ স্ক্রিন (আজ চালু করা 8.0 জিএম) 2208 x 1242।
কে ঠিক আছে?
উত্তর:
আইফোন 6+ 2208 × 1242 ( 736x414 পয়েন্ট সহ) এর ভার্চুয়াল রেজোলিউশনে @ 3x সম্পদ ব্যবহার করে অভ্যন্তরীণভাবে রেন্ডার করে , তারপরে নমুনাগুলি প্রদর্শিত হয়। রেটিনা ম্যাকবুকের উপর একটি মাপদণ্ডযুক্ত রেজোলিউশন ব্যবহার করার মতো - এটি পিক্সেল সম্পদের জন্য একটি অবিচ্ছেদ্য একাধিককে আঘাত করতে দেয় যখন এখনও 12 পিটি পাঠ্যটি পর্দায় একই আকার দেখতে দেয়।
সুতরাং, হ্যাঁ, লঞ্চের স্ক্রিনগুলি সেই আকার হওয়া দরকার।
6, 5s, 5, 4s এবং 4 সমস্ত ইঞ্চি প্রতি 326 পিক্সেল এবং পূর্ববর্তী সমস্ত ডিভাইসগুলির প্রতি ইঞ্চি প্রায় 160 পয়েন্টের সাথে লেগে থাকতে @ 2x সম্পদ ব্যবহার করুন।
6+ প্রতি ইঞ্চিতে 401 পিক্সেল। সুতরাং অনুমানের জন্য এটি মোটামুটি @ 2.46x সম্পদের প্রয়োজন। পরিবর্তে অ্যাপল @ 3x সম্পদ ব্যবহার করে এবং সম্পূর্ণ আউটপুটটিকে তার প্রাকৃতিক আকারের প্রায় 84% পর্যন্ত স্কেল করে।
বাস্তবে অ্যাপল ৮ 87% এর মতো আরও কিছু নিয়ে যাওয়ার সিদ্ধান্ত নিয়েছে, এই 1080 কে 1242-এ পরিণত করে 84 অন্যদিকে, যদি আপনি এই 1080 টি রূপান্তর করতে চান তবে 1286 বলুন, ভাল স্কেল করার জন্য আপনাকে কোনওভাবে উলম্বভাবে 2286.22 পিক্সেল রেন্ডার করতে হবে।
[UIScreen mainScreen].bounds.size.height
প্রতিকৃতিতে থাকতে যখন এমএমএস আইফোন 6+ সিমুলেটারে 736 ফেরত দেয়। এটি
উত্তরটি হ'ল পুরানো অ্যাপ্লিকেশনগুলি 2208 x 1242 জুমেড মোডে চলে। তবে নতুন অ্যাপ্লিকেশনগুলির জন্য যখন কোনও অ্যাপ তৈরি করা হয় তখন সেগুলির সমাধানগুলি পাওয়া যায়: সুপার রেটিনা এইচডি 5.8 (আইফোন এক্স) 1125 x 2436 (458ppi) , রেটিনা এইচডি 5.5 ( আইফোন 6, 7, 8 প্লাস ) 1242 x 2208 এবং রেটিনা এইচডি 4.7 ( আইফোন 6 ) 750 এক্স 1334 । এটি প্রশ্নের মধ্যে উল্লিখিত বিভ্রান্তি সৃষ্টি করছে। নতুন ফোনের পূর্ণ স্ক্রিন আকার ব্যবহার করে এমন অ্যাপ্লিকেশনগুলি তৈরি করতে আকারগুলিতে LaunchImages যুক্ত করুন: 1125 x 2436, 1242 x 2208, 2208 x 1242 এবং 750 x 1334।
@ 3x স্কেলিংয়ের সাথে আইফোন 11 প্রো ম্যাক্সের আকার , স্থানাঙ্কের স্থান: 414 x 896 পয়েন্ট এবং 1242 x 2688 পিক্সেল, 458 পিপিআই, ডিভাইসের শারীরিক আকার 3.06 x 6.22 ইন বা 77.8 x 158.0 মিমি। 6.5 "সুপার রেটিনা এক্সডিআর ডিসপ্লে।
@ 3x স্কেলিং সহ আইফোন 11 প্রো এর আকার , স্থানাঙ্কের স্থান: 375 x 812 পয়েন্ট এবং 1125 x 2436 পিক্সেল, 458 পিপিআই, ডিভাইসের শারীরিক আকার 2.81 x 5.67 ইন বা 71.4 x 144.0 মিমি। 5.8 "সুপার রেটিনা এক্সডিআর ডিসপ্লে।
@ 2x স্কেলিং সহ আইফোন 11 এর আকার , স্থানাঙ্কের স্থান: 414 x 896 পয়েন্ট এবং 828 x 1792 পিক্সেল, 326 পিপিআই, ডিভাইসের শারীরিক আকার 2.98 x 5.94 ইন বা 75.7 x 150.9 মিমি। 6.1 "তরল রেটিনা এইচডি ডিসপ্লে।
@ 3x স্কেলিং সহ আইফোন এক্স🅂 ম্যাক্সের আকার (অ্যাপেলের নাম: সুপার রেটিনা এইচডি 6.5 ডিসপ্লে " ), স্থানাঙ্কের স্থান: 414 x 896 পয়েন্ট এবং 1242 x 2688 পিক্সেল, 458 পিপিআই, ডিভাইসের শারীরিক আকার 3.05 x 6.20 ইন বা 77.4 x 157.5 মিমি।
let screen = UIScreen.main
print("Screen bounds: \(screen.bounds), Screen resolution: \(screen.nativeBounds), scale: \(screen.scale)")
//iPhone X🅂 Max Screen bounds: (0.0, 0.0, 414.0, 896.0), Screen resolution: (0.0, 0.0, 1242.0, 2688.0), scale: 3.0
@ 2x স্কেলিং সহ আইফোন এক্সের আকার (অ্যাপেলের নাম: সুপার রেটিনা এইচডি 6.1 "ডিসপ্লে ), স্থানাঙ্কের স্থান: 414 x 896 পয়েন্ট এবং 828 x 1792 পিক্সেল, 326 পিপিআই, ডিভাইসের শারীরিক আকার 2.98 x 5.94 ইন বা 75.7 x 150.9 মিমি ।
let screen = UIScreen.main
print("Screen bounds: \(screen.bounds), Screen resolution: \(screen.nativeBounds), scale: \(screen.scale)")
//iPhone X🅁 Screen bounds: (0.0, 0.0, 414.0, 896.0), Screen resolution: (0.0, 0.0, 828.0, 1792.0), scale: 2.0
জন্য ফাইলের আকার আইফোন X🅂 এবং আইফোন এক্স সঙ্গে @ 3x স্কেলিং (অ্যাপল নাম: সুপার অক্ষিপট এইচডি 5.8 "ডিসপ্লে ):, স্থান তুল্য 375 এক্স 812 পয়েন্ট এবং 1125 এক্স 2436 পিক্সেল, 458 PPI, ডিভাইসের শারীরিক আকার 2,79 x এর মধ্যে 5,65 বা 70.9 হয় x 143.6 মিমি।
let screen = UIScreen.main
print("Screen bounds: \(screen.bounds), Screen resolution: \(screen.nativeBounds), scale: \(screen.scale)")
//iPhone X🅂 and X Screen bounds: (0.0, 0.0, 375.0, 812.0), Screen resolution: (0.0, 0.0, 1125.0, 2436.0), scale: 3.0
@ 3x স্কেলিং সহ আইফোন 6, 6 এস, 7 এবং 8 এর আকার (অ্যাপেলের নাম: রেটিনা এইচডি 5.5 ), স্থানাঙ্কের স্থান: 414 x 736 পয়েন্ট এবং 1242 x 2208 পিক্সেল, 401 পিপিআই, স্ক্রিনের দৈহিক আকার 2.7 x 4.8 বা 68 x 122 মিমি । জুমেড মোডে চলাকালীন, যেমন আইফোন 6 প্লাসে নতুন লঞ্চইমেজগুলি বা সেটআপে চয়ন না করে, নেটিভ স্কেল ২.৮৮ এবং পর্দাটি ৩২০ x ৫8৮ পয়েন্ট, যা আইফোন ৫ এর স্থানীয় আকার:
Screen bounds: {{0, 0}, {414, 736}}, Screen resolution: <UIScreen: 0x7f97fad330b0; bounds = {{0, 0}, {414, 736}};
mode = <UIScreenMode: 0x7f97fae1ce00; size = 1242.000000 x 2208.000000>>, scale: 3.000000, nativeScale: 3.000000
@ 2x স্কেলিং সহ আইফোন 6 এবং আইফোন 6 এস এর আকার (অ্যাপেলের নাম: রেটিনা এইচডি 4.7 ), স্থান স্থানাঙ্ক: 375 x 667 পয়েন্ট এবং 750 x 1334 পিক্সেল, 326 পিপিআই, স্ক্রিনের দৈহিক আকার 2.3 x 4.1 ইন বা 58 x 104 মিমি । জুমেড মোডে চলাকালীন, অর্থাত্ নতুন লঞ্চইমেজগুলি ছাড়াই, পর্দাটি 320 x 568 পয়েন্টের, যা আইফোন 5 নেটিভ আকার:
Screen bounds: {{0, 0}, {375, 667}}, Screen resolution: <UIScreen: 0x7fa01b5182d0; bounds = {{0, 0}, {375, 667}};
mode = <UIScreenMode: 0x7fa01b711760; size = 750.000000 x 1334.000000>>, scale: 2.000000, nativeScale: 2.000000
এবং তুলনার জন্য আইফোন 5 640 x 1136, আইফোন 4 640 x 960।
এটি যাচাই করার জন্য আমি যে কোডটি ব্যবহার করেছি তা এখানে রয়েছে (দ্রষ্টব্য যে নেটিভস্কেলটি কেবল আইওএস 8 এ চলে):
UIScreen *mainScreen = [UIScreen mainScreen];
NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f",
NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale);
দ্রষ্টব্য: লঞ্চইমেজগুলি আপলোড করুন অন্যথায় অ্যাপটি জুমড মোডে চলবে এবং সঠিক স্কেলিং বা স্ক্রিন আকারগুলি প্রদর্শন করবে না। জুমেড মোডে nativeScale
এবং scale
একই হবে না। একটি আসল ডিভাইসে স্কেল আইফোন 6 প্লাসে 2.608 হতে পারে, এটি জুমেড মোডে চলমান না থাকলেও সিমুলেটারে চলার সময় এটি 3.0 স্কেল প্রদর্শন করবে।
রিয়েল / ফিজিক্যাল আইফোন 6 প্লাস রেজোলিউশনটি 1920x1080 হয় তবে এক্সকোডে আপনি আপনার ইন্টারফেসটি 2208x1242 রেজোলিউশনের (736x414 পয়েন্ট) তৈরি করেন এবং ডিভাইসে এটি স্বয়ংক্রিয়ভাবে 1920x1080 পিক্সেল হয়ে ছোট হয়।
আইফোন রেজোলিউশনগুলি দ্রুত রেফারেন্স:
Device Points Pixels Scale Physical Pixels PPI Ratio Size
iPhone XS Max 896x414 2688x1242 3x 2688x1242 458 19.5:9 6.5"
iPhone XR 896x414 1792x828 2x 1792x828 326 19.5:9 6.1"
iPhone X 812x375 2436x1125 3x 2436x1125 458 19.5:9 5.8"
iPhone 6 Plus 736x414 2208x1242 3x 1920x1080 401 16:9 5.5"
iPhone 6 667x375 1334x750 2x 1334x750 326 16:9 4.7"
iPhone 5 568x320 1136x640 2x 1136x640 326 16:9 4.0"
iPhone 4 480x320 960x640 2x 960x640 326 3:2 3.5"
iPhone 3GS 480x320 480x320 1x 480x320 163 3:2 3.5"
আপনার সম্ভবত আইওএস 8 এ লঞ্চ চিত্রগুলি ব্যবহার বন্ধ করা উচিত এবং স্টোরিবোর্ড বা নিব / এক্সিব ব্যবহার করা উচিত।
ইন Xcode 6 , খুলতে File
মেনু এবং পছন্দ করে নিন New
⟶ File...
⟶ iOS
⟶ User Interface
⟶ Launch Screen
।
তারপরে আপনার প্রকল্পের উপর ক্লিক করে সেটিংসটি খুলুন ।
ইন General
ট্যাব, অধ্যায় নামক App Icons and Launch Images
সেট Launch Screen File
আপনি শুধু নির্মিত ফাইল (এই সেট হবে UILaunchStoryboardName
মধ্যে info.plist
)।
নোট করুন যে আপাতত সিমুলেটর কেবল একটি কালো পর্দা প্রদর্শন করবে, সুতরাং আপনাকে একটি সত্যিকারের ডিভাইসে পরীক্ষা করতে হবে ।
আপনার প্রকল্পে একটি লঞ্চ স্ক্রিন xib ফাইল যুক্ত করা হচ্ছে:
সম্পদ ক্যাটালগের পরিবর্তে লঞ্চ স্ক্রিন xib ফাইলটি ব্যবহার করতে আপনার প্রকল্পটি কনফিগার করছেন:
শারীরিক ডিভাইসে, আইফোন 6 প্লাসের প্রধান পর্দার সীমানা 2208x1242 এবং নেটিবাউন্ডস 1920x1080 । শারীরিক প্রদর্শনে পুনরায় আকার দেওয়ার জন্য রয়েছে হার্ডওয়্যার স্কেলিং involved
সিমুলেটারে, আইফোন 6 প্লাসের প্রধান পর্দার সীমানা এবং নেটিটিবাউন্ডস 2208x1242 উভয়ই।
অন্য কথায় ... ভিডিও, ওপেনজিএল এবং CALayers
পিক্সেলের সাথে চুক্তির উপর ভিত্তি করে অন্যান্য জিনিসগুলি ডিভাইসে আসল 1920x1080 ফ্রেম বাফার (অথবা সিমের উপর 2208x1242 ) নিয়ে কাজ করবে। পয়েন্টগুলির সাথে কাজ করার বিষয়গুলি 2208x1242 (x3) সীমাগুলির UIKit
সাথে ডিল করা হবে এবং ডিভাইসে উপযুক্ত হিসাবে মাপানো হবে।
ডিভাইসে স্কেলিং করছে এমন একই হার্ডওয়্যারটিতে সিমুলেটারের অ্যাক্সেস নেই এবং এটি সফ্টওয়্যারটিতে সিমুলেট করার মতো খুব বেশি সুবিধা নেই কারণ তারা হার্ডওয়্যার থেকে আলাদা ফলাফল অর্জন করতে পারে। এইভাবে nativeBounds
একটি সিমুলেটেড ডিভাইসের মূল পর্দাটি দৈহিক ডিভাইসের মূল পর্দার সীমানায় সেট করা অর্থবোধ করে।
iOS 8 এ যোগ করা এপিআই UIScreen
( nativeScale
এবং nativeBounds
) একজন বিকাশকারী রেজল্যুশন নির্ধারণ যাক CADisplay
সংশ্লিষ্ট UIScreen
।
আমার মতো যারা লেগ্যাসি অ্যাপ্লিকেশনগুলি কীভাবে আচরণ করে তা অবাক করে, আমি এই বিষয়ে কিছুটা পরীক্ষা এবং গণনা করেছি।
@ হ্যানস-সার্ভারিসন ইঙ্গিতটির জন্য ধন্যবাদ, আমি এই ধারণা থেকে শুরু করেছিলাম যে আইফোন 6 এবং আইফোন 6 প্লাসে 320x568 ভিউ দিয়ে কোনও উত্তরাধিকার অ্যাপটি চিকিত্সা করা হয়।
bg@2x.png
সাদা সীমানা সহ একটি সাধারণ কালো পটভূমি দিয়ে পরীক্ষাটি করা হয়েছিল । পটভূমিটির আকার 640x1136 পিক্সেল এবং এটি 1 পিক্সেলের অভ্যন্তরের সাদা সীমানা সহ কালো।
নীচে সিমুলেটর দ্বারা সরবরাহ করা স্ক্রিনশট রয়েছে:
আইফোন 6 এর স্ক্রিনশটে আমরা সাদা সীমান্তের উপরে এবং নীচে 1 পিক্সেল মার্জিন এবং আইফোন 6 প্লাসের স্ক্রিনশটটিতে 2 পিক্সেল মার্জিন দেখতে পারি। এটি আমাদের আইফোন 6 প্লাসে 1242x2204 এর পরিবর্তে 1242x2208 এর পরিবর্তে এবং 650x1334 এর পরিবর্তে আইফোন 6 এ 750x1332 ব্যবহারের স্থান দেয় ।
আমরা ধরে নিতে পারি যে এই মৃত পিক্সেলগুলি আইফোন 5 অনুপাতের অনুপাতকে সম্মান করতে বোঝানো হয়েছে:
iPhone 5 640 / 1136 = 0.5634
iPhone 6 (used) 750 / 1332 = 0.5631
iPhone 6 (real) 750 / 1334 = 0.5622
iPhone 6 plus (used) 1242 / 2204 = 0.5635
iPhone 6 plus (real) 1242 / 2208 = 0.5625
দ্বিতীয়ত, এটি জেনে রাখা গুরুত্বপূর্ণ যে @ 2x সংস্থানগুলি কেবল আইফোন 6 প্লাসে (যা @ 3x সম্পদের প্রত্যাশা করে) নয়, আইফোন 6 এও পরিমাপ করা হবে এটি সম্ভবত কারণ কারণ সংস্থানগুলি স্কেল না করা অপ্রত্যাশিত বিন্যাসে ডেকে আনত, কারণ ভিউ বাড়ানোর জন্য।
তবে, স্কেলিংটি প্রস্থ এবং উচ্চতার সমতুল্য নয়। আমি এটি 264x264 @ 2x সংস্থান দিয়ে চেষ্টা করেছি। ফলাফলগুলি দেওয়া, আমাকে ধরে নিতে হবে যে স্কেলিংটি পিক্সেল / পয়েন্টের অনুপাতের সাথে সরাসরি সমানুপাতিক।
Device Width scale Computed width Screenshot width
iPhone 5 640 / 640 = 1.0 264 px
iPhone 6 750 / 640 = 1.171875 309.375 309 px
iPhone 6 plus 1242 / 640 = 1.940625 512.325 512 px
Device Height scale Computed height Screenshot height
iPhone 5 1136 / 1136 = 1.0 264 px
iPhone 6 1332 / 1136 = 1.172535 309.549 310 px
iPhone 6 plus 2204 / 1136 = 1.940141 512.197 512 px
আইফোন 6 স্কেলিং প্রস্থ এবং উচ্চতা (309x310) এর মতো নয় বলে মনে রাখা জরুরী। এটি উপরোক্ত তত্ত্বটি নিশ্চিত করে যে স্কেলিং প্রস্থ এবং উচ্চতায় সমানুপাতিক নয়, তবে পিক্সেল / পয়েন্ট অনুপাত ব্যবহার করে।
আশা করি এটা কাজে লাগবে.
এই ইনফোগ্রাফিকটি দেখুন: http://www.paintcodeapp.com/news/iphone-6-screens- डीমেডিফিকেশন
এটি পুরানো আইফোন, আইফোন 6 এবং আইফোন 6 প্লাসের মধ্যে পার্থক্য ব্যাখ্যা করে। আপনি পয়েন্ট, রেন্ডারড পিক্সেল এবং শারীরিক পিক্সেলগুলিতে পর্দার আকারগুলির তুলনা দেখতে পারেন। আপনি সেখানে আপনার প্রশ্নের উত্তরও খুঁজে পাবেন:
আইফোন 6 প্লাস - রেটিনা ডিসপ্লে এইচডি সহ। স্কেলিং ফ্যাক্টর 3 এবং চিত্রটি পরে 2208 × 1242 পিক্সেল থেকে 1920 × 1080 পিক্সেল রেন্ডার করে ডাউনস্কেল করা হয়।
ডাউনস্কেটিং অনুপাতটি 1920/2208 = 1080/1242 = 20 / 23. এর অর্থ মূল রেন্ডার থেকে প্রতি 23 পিক্সেলকে 20 টি শারীরিক পিক্সেল ম্যাপ করতে হবে। অন্য কথায় ছবিটি মূল আকারের প্রায় 87% পর্যন্ত ছোট করে দেওয়া হয়েছে।
হালনাগাদ:
উপরে বর্ণিত ইনফোগ্রাফিকের একটি আপডেট সংস্করণ রয়েছে। এতে স্ক্রিন রেজোলিউশনের পার্থক্য সম্পর্কে আরও বিশদ তথ্য রয়েছে এবং এটি 4 ইঞ্চি ডিভাইস সহ এখন পর্যন্ত সমস্ত আইফোন মডেলকে কভার করে।
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
এমনকি আমি জন গ্রুবারের সাহসী ফায়ারবল ব্লগের সুরটি পছন্দ না করলেও, তার বড় আইফোন ডিসপ্লে কনজেকচারটি খুব ভাল।
তিনি অনুমান করেছিলেন কিন্তু উভয় মডেলের জন্যই পয়েন্ট এবং পিক্সেলগুলিতে রেজোলিউশনটি ঠিক ঠিক পেয়েছেন , কেবল তিনি (আমিও নয়) আশা করিনি অ্যাপল একটি ছোট রেজোলিউশন শারীরিক প্রদর্শন তৈরি করবে এবং স্কেল ডাউন করবে (বিশদ @ টমির উত্তরে আছে)।
এর মূল বক্তব্যটি হ'ল পিক্সেলের নিরিখে চিন্তা করা বন্ধ করা উচিত এবং পয়েন্টগুলির বিবেচনায় চিন্তা করা শুরু করা উচিত (এটি বেশ কিছু সময়ের জন্য এটি হয়েছে, এটি সাম্প্রতিক উদ্ভাবন নয়) এবং ইউআই উপাদানগুলির শারীরিক আকারের ফলস্বরূপ। সংক্ষেপে, উভয় নতুন আইফোন মডেল শারীরিকভাবে বেশিরভাগ উপাদান একই আকারের হিসাবে এই ক্ষেত্রে উন্নতি করে, আপনি কেবল তাদের বেশিরভাগই পর্দায় ফিট করতে পারেন (প্রতিটি বড় পর্দার জন্য আপনি আরও ফিট করতে পারেন)।
আমি কেবল সামান্য হতাশ হয়েছি তারা বড় মডেলের জন্য অভ্যন্তরীণ রেজোলিউশনের প্রকৃত স্ক্রিন রেজোলিউশন 1: 1 এ ম্যাপিং রাখেনি।