Máy chủ X tính toán DPI như thế nào?


9

Từ Tài liệu Xfce :

Trong trường hợp bạn muốn ghi đè giá trị DPI (số chấm trên mỗi inch) được tính bởi máy chủ X , bạn có thể chọn hộp kiểm và sử dụng hộp xoay để chỉ định độ phân giải sẽ sử dụng khi màn hình của bạn hiển thị phông chữ.

Nhưng làm thế nào để X-server thực hiện tính toán của nó? Những giả định nào được đưa ra trong quá trình và một số tham số có thể bị ghi đè không?

Nó có thể biết tôi có bao nhiêu pixel trên màn hình của mình, nhưng như vậy đã đủ chưa?

Câu trả lời:


8

Theo tôi biết, bắt đầu với phiên bản 1.7, xorg mặc định là96 dpi . Nó không tính toán bất cứ điều gì trừ khi bạn chỉ định DisplaySizethông qua Xorgcác tập tin cấu hình. Ngoài ra, đừng dựa vào xdpyinfođầu ra.
Máy tính xách tay của tôi chạy trên Intel SandyBridge. Trích từ bản Xorg.0.logcài đặt Archlinux mới của tôi :

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

đang chạy

xdpyinfo | grep -E 'dimensions|resolution'

trả về:

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

đó là xa sự thật. Tôi biết rằng kích thước màn hình của tôi là 344x193mm nên rõ ràng xdpyinfotính toán kích thước vật lý dựa trên độ phân giải pixel ( 1600x900) và mặc định 96 DPI. Nếu tôi thêm

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

trong /etc/X11/xorg.conf.d/monitor.confvà khởi động lại, Xorg.0.logbáo cáo chính xác:

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

Tuy nhiên, xdpyinfo | grep -E 'dimensions|resolution'luôn luôn trả về:

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

Tuy nhiên, không có thay đổi trực quan khi tôi đang sử dụng Gnome và 96 DPIcũng được mã hóa cứng gnome-settings-daemon. Sau khi vá cái sau, tôi có thể tận hưởng bản địa của mình 118 DPI. Nhưng ngay cả sau tất cả những điều đó, xdpyinfovẫn trả về:

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

7

Máy chủ X tính toán DPI như thế nào?

DPI của máy chủ X được xác định theo cách sau:

  1. Các -dpitùy chọn dòng lệnh có ưu tiên cao nhất.
  2. Nếu điều này không được sử dụng, DisplaySizecài đặt trong tệp cấu hình X được sử dụng để lấy DPI, với độ phân giải màn hình.
  3. Nếu không DisplaySizeđược đưa ra, các giá trị kích thước màn hình từ DDC được sử dụng để lấy DPI, với độ phân giải màn hình.
  4. Nếu DDC không chỉ định kích thước, 75 DPI được sử dụng theo mặc định.

Nó có thể biết tôi có bao nhiêu pixel trên màn hình của mình, nhưng như vậy đã đủ chưa?

Không, nó không chỉ biết kích thước màn hình ảo tính bằng pixel mà (thông thường) còn có kích thước màn hình vật lý tính bằng milimét. Bạn có thể kiểm tra kích thước hiển thị của mình bằng cách chạy như sau trong cửa sổ terminal:

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

Tính toán mà máy chủ X của bạn thực hiện như sau:

  • 1366 pixel chia cho 361 mm nhân với 25,4 mm mỗi inch = 96.11191136 điểm trên mỗi inch (DPI).
  • 768 pixel chia cho 203 mm nhân với 25,4 mm mỗi inch = 96,09458128 điểm trên mỗi inch.

Bạn có thể kiểm tra DPI mà máy chủ X của bạn đã tính bằng lệnh sau:

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

Có vẻ tốt, phải không?

Để đọc thêm:


@ alois-mahdal Tôi đoán lúc đầu tôi đã hiểu nhầm câu hỏi. Tôi đã cải thiện câu trả lời thêm kích thước hiển thị được sử dụng bởi máy chủ X.
Afr

Xorg mặc định là 96x96 bất kể độ phân giải màn hình. Tôi nghĩ điều này là do các chương trình cung cấp hình ảnh có ý nghĩa cho dpi tiêu chuẩn này. Thà là một chút còn hơn là tạo ra các tạo tác bằng cách thu nhỏ hình ảnh mọi lúc. DPI thực tế của màn hình chính của tôi là 93,8. Tuy nhiên, cài đặt DPI tùy chỉnh rất hữu ích cho các màn hình lớn, chẳng hạn như HDTV lớn có DPI thấp hơn nhiều so với 96.
Colin

X dường như không cho phép cài đặt DPI trên mỗi màn hình cho một màn hình, DPI đó được chia sẻ trên tất cả các màn hình trong cùng một màn hình. Ngoài ra tôi thấy rằng các milimet được cung cấp bởi xdpyinfokhông cộng từ milimet từ xrandr --query.
CMCDragonkai

0

Dots Per Inch = Dots (pixel) / Inches (kích thước vật lý của màn hình).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.