X sunucusu DPI'yi nasıl hesaplar?


9

Gönderen Xfce'in Dokümanlar :

X sunucusu tarafından hesaplanan DPI (inç başına nokta sayısı) değerini geçersiz kılmak istiyorsanız , onay kutusunu seçebilir ve ekranınız yazı tiplerini oluştururken kullanılacak çözünürlüğü belirtmek için döndürme kutusunu kullanabilirsiniz.

Peki X-server hesaplamasını nasıl yapıyor? Süreçte hangi varsayımlar yapılır ve bazı parametreler geçersiz kılınabilir mi?

Ekranımda kaç piksel olduğunu biliyor olabilir, ancak bu yeterli mi?

Yanıtlar:


8

Bildiğim kadarıyla, 1.7 sürümünden başlayarak xorg varsayılan olarak96 dpi . Yapılandırma dosyaları DisplaySizearacılığıyla belirtmediğiniz sürece hiçbir şey hesaplamaz Xorg. Ayrıca, xdpyinfoçıktıya güvenmeyin .
Dizüstü bilgisayarım Intel SandyBridge üzerinde çalışıyor. Xorg.0.logTaze bir Archlinux kurulumunda benim alıntı :

(==) intel(0): DPI set to (96, 96)

çalışan

xdpyinfo | grep -E 'dimensions|resolution'

İadeler:

dimensions:    1600x900 pixels (423x238 millimeters)
resolution:    96x96 dots per inch

ki bu gerçek olmaktan çok uzak. Ben biliyorum benim ekran boyutu olduğunu 344x193çok açıktır ki mm xdpyinfopiksel çözünürlükte (dayanan fiziksel boyut hesaplama yapar 1600x900) ve varsayılan 96 DPI. Eklersem

........
DisplaySize     344 193
........

içeri /etc/X11/xorg.conf.d/monitor.confve yeniden başlat, Xorg.0.logdoğru raporlar:

(**) intel(0): Display dimensions: (344, 193) mm
(**) intel(0): DPI set to (118, 118)

Ancak, xdpyinfo | grep -E 'dimensions|resolution'her zaman şunu döndürür:

dimensions:    1600x900 pixels (423x238 millimeters)
resolution:    96x96 dots per inch

Yine de, Gnome'u kullandığımda hiçbir görsel değişiklik yok ve 96 DPIaynı zamanda kodlanmış gnome-settings-daemon. İkincisini yamaladıktan sonra, yerli yerimin tadını çıkarabilirim 118 DPI. Ama ondan sonra bile, xdpyinfoyine de geri dönüyor:

dimensions:    1600x900 pixels (423x238 millimeters)
resolution:    96x96 dots per inch

7

X sunucusu DPI'yi nasıl hesaplar?

X sunucusunun DPI'si aşağıdaki şekilde belirlenir:

  1. -dpiKomut satırı seçeneği en yüksek önceliğe sahiptir.
  2. Bu kullanılmazsa, DisplaySizeX çözünürlüğü dosyasındaki ayar, ekran çözünürlüğü göz önüne alındığında DPI'yi türetmek için kullanılır.
  3. Hayır DisplaySizeverilirse, ekran çözünürlüğü göz önüne alındığında DPI'yi türetmek için DDC'deki monitör boyutu değerleri kullanılır.
  4. DDC bir boyut belirtmezse, varsayılan olarak 75 DPI kullanılır.

Ekranımda kaç piksel olduğunu biliyor olabilir, ancak bu yeterli mi?

Hayır, yalnızca sanal ekran boyutunu piksel olarak değil, (genellikle) fiziksel ekran boyutunu da milimetre olarak bilir. Terminal boyutunda aşağıdakileri çalıştırarak ekran boyutlarınızı kontrol edebilirsiniz:

 ~ $ xdpyinfo | grep dimension
dimensions:    1366x768 pixels (361x203 millimeters)

X sunucunuzun yaptığı hesaplama şudur:

  • 1366 piksel bölü 361 milimetre ile çarpılarak inç başına 25,4 milimetre = 96.11191136 nokta / inç (DPI).
  • 768 pikselin 203 milimetre bölünmesi, inç başına 25.4 milimetre ile çarpılması = 96.09458128 nokta / inç.

Aşağıdaki komutu kullanarak X sunucunuzun hangi DPI'yı hesapladığını kontrol edebilirsiniz:

 ~ $ xdpyinfo | grep resolution
 resolution:    96x96 dots per inch

İyi görünüyor, değil mi?

Daha fazla okuma için:


@ alois-mahdal Sanırım soruyu ilk başta yanlış anladım. X sunucusu tarafından kullanılan ekran boyutlarını ekleyerek cevabı geliştirdim.
Afr

Xorg, monitör çözünürlüğünden bağımsız olarak varsayılan olarak 96x96'dır. Bence bu programların bu standart dpi için görüntüleri sağlamasıdır. Görüntüleri her zaman ölçeklendirerek eserler oluşturmaktan biraz uzaklaşmak daha iyidir. Birincil monitörümün gerçek DPI'si 93.8. Bununla birlikte, özel DPI ayarlamak, DPI 96'dan çok daha düşük olan büyük HDTV'ler gibi büyük ekranlar için kullanışlıdır.
Colin

X, tek bir ekran için monitör başına DPI ayarlarına izin vermiyor gibi görünüyor, DPI aynı ekrandaki tüm monitörlerde paylaşılıyor. Ayrıca ben tarafından verilen milimetre bulundu xdpyinfodan milimetre kadar eklemez xrandr --query.
CMCDragonkai

0

Nokta Başına Nokta = Nokta (piksel) / İnç (monitörün fiziksel boyutu).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.