উত্তর:
আছে প্রতি ইঞ্চি 72 পয়েন্ট ; যদি প্রতি ইঞ্চিতে 96 পিক্সেল ধরে নেওয়া যথেষ্ট হয় তবে সূত্রটি বরং সহজ:
পয়েন্টস = পিক্সেল * 72/96
উইন্ডোজ ব্যবহার করে আপনার প্রতি ইঞ্চি প্রতি কনফিগার পিক্সেল পাওয়ার উপায় রয়েছে GetDeviceCaps
। মাইক্রোসফ্টের একটি গাইড রয়েছে "বিকাশকারী ডিপিআই-অ্যাওয়ার অ্যাপ্লিকেশনস" , "ডিপিআই-অ্যাওয়ার ফন্ট তৈরি করা" বিভাগটি দেখুন।
ডাব্লু 3 সি পিক্সেল পরিমাপটিকে px
ঠিক হিসাবে সংজ্ঞায়িত করেছেডাব্লু 3 সি আপনার ডিসপ্লের প্রকৃত রেজোলিউশন নির্বিশেষে 1 ম 1/96 তম , সুতরাং উপরের সূত্রটি সমস্ত ওয়েব কাজের জন্য ভাল হওয়া উচিত।
যদি আপনার কোড কোনও ফর্মের মধ্যে থাকে তবে এটি ব্যবহার করে দেখুন:
Graphics g = this.CreateGraphics();
points = pixels * 72 / g.DpiX;
g.Dispose();
ধরে নেওয়া 96 ডিপিআই একটি বিশাল ভুল। এমনকি যদি অনুমানটি সঠিক হয় তবে ফন্টগুলি স্কেল করার একটি বিকল্পও রয়েছে। সুতরাং 10 পিটিএসের জন্য সেট করা একটি ফন্টটি আসলে এটি 12.5pt (125%) হিসাবে প্রদর্শিত হতে পারে।
প্রদত্ত দিয়ে শুরু:
আপনি যদি পিক্সেল (px) এর উপর ভিত্তি করে পয়েন্টগুলি (পিটি) সন্ধান করতে চান:
72 pt x pt
------ = ----- (1) for 150dpi system
150 px y px
পুনরায় সজ্জিত করা:
x = (y/150) * 72 (2) for 150dpi system
তাই:
points = (pixels / 150) * 72 (3) for 150dpi system
ডাব্লুপিএফ System.Windows.FontSizeConverter দিয়ে পিক্সেলগুলিতে পয়েন্টগুলিতে রূপান্তর করে। FontSizeConverter System.Windows.LengthConverter ব্যবহার করে। দৈর্ঘ্য কনভার্টারটি পয়েন্ট (পি) থেকে পিক্সেল (এক্স) এ রূপান্তর করতে 1.33333333333333333333 ফ্যাক্টরটি ব্যবহার করে: x = পি * 1.3333333333333333
সিস্টেম.ড্রেইং.গ্রাফিক্সে ডিপিএক্স এবং ডিপিআইওয়াই বৈশিষ্ট্য রয়েছে। অনুভূমিকভাবে ডিপিআইএক্স পিক্সেল প্রতি ইঞ্চি। ডিপিআইওয়াই প্রতি ইঞ্চি উল্লম্বভাবে পিক্সেল। পয়েন্টগুলি (প্রতি ইঞ্চিতে 72 পয়েন্ট) থেকে পিক্সেলগুলিতে রূপান্তর করতে এগুলি ব্যবহার করুন।
উদা: 14 অনুভূমিক পয়েন্ট = (14 * ডিপিআইএক্স) / 72 পিক্সেল
অবশ্যই এই পুরো প্রশ্নটি হওয়া উচিত:
"আমি কীভাবে মনিটরের অনুভূমিক এবং উল্লম্ব পিপিআই (পিক্সেল প্রতি ইঞ্চি) পেতে পারি?"
একটি ইঞ্চিতে 72২ পয়েন্ট রয়েছে (সংজ্ঞা অনুসারে, একটি "পয়েন্ট" একটি ইঞ্চির 1 / 72nd হিসাবে সংজ্ঞায়িত হয়, একইভাবে একটি "পিকা" একটি ফুট এর 1 / 72nd হিসাবে সংজ্ঞায়িত হয়)। এই দুটি বিটের তথ্যের সাহায্যে আপনি খুব সহজেই পিএক্স থেকে পিটি এবং পিছনে রূপান্তর করতে পারেন।
পয়েন্ট = (পিক্সেল / 96) * 72 একটি স্ট্যান্ডার্ড এক্সপি / ভিস্তা / 7 মেশিনে (কারখানার ডিফল্ট)
পয়েন্ট = (পিক্সেল / 72) * 72 একটি স্ট্যান্ডার্ড ম্যাক চলমান ওএসএক্সে (কারখানার ডিফল্ট)
উইন্ডোজ 96 ডিপিআই (প্রদর্শন) এ ডিফল্ট হিসাবে চালিত ম্যাকগুলি 72 ডিপিআই (প্রদর্শন) এ ডিফল্ট হিসাবে চালিত
P২ পোস্টস্ক্রিপ্ট পয়েন্ট = ১ ইঞ্চি 12 পোষ্টস্ক্রিপ্ট পয়েন্ট = 1 পোস্টস্ক্রিপ্ট পিকা 6 পোস্টস্ক্রিপ্ট পিকাস = 72 পয়েন্ট = 1 ইঞ্চি
1 পয়েন্ট = 1⁄72 ইঞ্চি = 25.4⁄72 মিমি = 0.3527 মিমি
ডিপিআই = প্রতি ইঞ্চায় ডটস পিপিআই = পিক্সেল প্রতি ইঞ্চি এলপিআই = প্রতি ইঞ্চিতে লাইন
পরিমাপ হিসাবে Em ব্যবহার করে আরও তথ্য
16px = 1 মিম (সাধারণ পাঠ্যের জন্য ডিফল্ট) 8 এম = 16 পিক্স * 8 পিক্সেল / 16 = এম
এইটা কাজ করে:
int pixels = (int)((dp) * Resources.System.DisplayMetrics.Density + 0.5f);
উচ্চতা রেখাগুলি পয়েন্ট এবং পিক্সেলে রূপান্তরিত হয় (আমার নিজস্ব সূত্র)। এখানে সারি উচ্চতা ক্ষেত্রে 213.67 পয়েন্টের ম্যানুয়াল প্রবেশের একটি উদাহরণ রয়েছে:
213.67 Manual Entry
0.45 Add 0.45
214.12 Subtotal
213.75 Round to a multiple of 0.75
213.00 Subtract 0.75 provides manual entry converted by Excel
284.00 Divide by 0.75 gives the number of pixels of height
213.67 পয়েন্টের ম্যানুয়াল এন্ট্রি 284 পিক্সেল দেয়।
213.68 পয়েন্টের ম্যানুয়াল এন্ট্রি 285 পিক্সেল দেয়।
(কেন 0.45? আমি জানি না তবে এটি কাজ করে))