Thứ nhất, để giúp đỡ với sự nhầm lẫn có thể (và rất phổ biến) với thời hạn DPI (dots per inch):
DPI không chính xác là một phần của "cài đặt hiển thị". Chữ này (sai) được sử dụng trong hai ngữ cảnh khác nhau:
- Pixel gốc trên inch của màn hình (hoặc video). Nó xác định các pixel nhỏ như thế nào. Bạn có thể có cùng độ phân giải 1024x768 trên cả màn hình laptop 14 "và màn hình LCD 17". Trước đây khoảng 1280/14 = 91 DPI và sau đó sẽ là 1280/17 = 75 DPI. DPI của màn hình là bất biến; không thể thay đổi cài đặt hiển thị. More...
- Các chấm trên mỗi inch được vẽ trên giấy trong khi in. Đây là số lượng các dấu chấm bên cạnh một máy in/máy photocopy/máy fax có thể in dấu trong một inch giấy. Hầu hết các máy in có thể được thiết lập để in ở một DPI thấp hơn, bằng cách chỉ in mỗi chấm là hai, bốn, vv chấm. More...
Khi in một hình ảnh, có rất nhiều điều mà ảnh hưởng đến kích thước cuối cùng của hình ảnh trên giấy:
- Các kích thước của hình ảnh nguồn - đây là số lượng điểm ảnh hoặc dữ liệu có Là.
- DPI của hình ảnh nguồn. Giá trị này xác định cách tham số nên được diễn giải khi in hình ảnh.
- Nếu hình ảnh nguồn không có thông tin DPI được nhúng (JPEG có thể có ảnh GIF không bao giờ), chương trình đang được sử dụng có thể có cài đặt để chỉ định DPI. Đây có thể là trình xem/biên tập hình ảnh hoặc thậm chí là trình duyệt web.
- Hệ số thu phóng thường được chỉ định trong hộp thoại in.
- Cài đặt DPI hiện tại của máy in.
- DPI vật lý (tối đa) của máy in.
Dòng dưới cùng là hình ảnh bạn đang in sẽ được lấy lại hiệu quả (giảm hoặc mở rộng) để khớp với DPI cuối cùng được sử dụng trong quá trình in. Bất kỳ bên nào bị bắt buộc có thể gây ra điều này (chương trình, trình điều khiển in, máy in).
Bây giờ, hãy quay lại câu hỏi của bạn. Không, bạn không thể xác định DPI của màn hình, vì nó không nằm trong miền phần mềm. Đó là một thuật ngữ tên miền phần cứng, mô tả một màn hình lớn mà người dùng có thể mua được.Cập nhật: Tôi bước đầu đã viết câu trả lời này vào năm 2009, với sự hiểu biết của tôi về các công nghệ hiện tại. Như @thure đã chỉ ra, bây giờ bạn có thể (kể từ năm 2012?) Sử dụng chức năng window.matchMedia để xác định DPI của màn hình.
Nếu bạn đang cố gắng đạt được độ chính xác khi in bố cục HTML, như những người khác đã đề xuất, CSS của bạn nên sử dụng kích thước in như em, pt hoặc pc thay vì px. Tuy nhiên, kết quả cuối cùng vẫn có thể phụ thuộc vào trình duyệt sử dụng. Nếu chuyển đổi HTML sang PDF (hoặc tạo PDF từ đầu) là một tùy chọn cho bạn, việc in một tệp PDF sẽ cung cấp cho bạn WYSIWYG đúng nhất cả trên màn hình và giấy.
Nguồn
2009-01-25 01:59:43
Mặc dù bạn không thể thay đổi DPI vật lý, bạn * có thể * thay đổi phần mềm ánh xạ số đo thành pixel, được điều chỉnh bởi phần mềm, trong đó, có một giá trị tùy ý, thường được thăm dò từ màn hình thông qua EDID, nhưng có thể bị ghi đè. Đó là những gì tôi nghĩ rằng OP đã nhận được. –
Không, có nhiều trường hợp biết các thuộc tính vật lý như DPI và kích thước màn hình từ phần mềm - bao gồm từ mức cao như Javascript - rất hữu ích. Các nhà thiết kế API không tiết lộ điều này rõ ràng bởi vì họ không thể nghĩ ra một trường hợp cần thiết cả hai đều thiếu tầm nhìn xa và có ảo tưởng về sự toàn tri. –
@Glenn Maynard: Có, trên thực tế, Android hỗ trợ DIP (pixel độc lập thiết bị) trong API đồ họa của nó. Thư viện rasterization mức thấp hơn dịch các giá trị DIP thành các pixel thực tế dựa trên DPI đã biết của màn hình. –