Tại sao độ trong suốt vô hiệu hóa kết xuất pixel phụ trong Adobe Reader?


9

Tôi thường thích Adobe Reader (vẫn là v9 trên Linux) cho tất cả những người xem PDF khác vì tôi nghĩ nó có chất lượng hiển thị tốt nhất, mặc dù những người khác đã bắt kịp gần đây. Chất lượng kết xuất này dường như chiếm một phần lớn do CoolType, triển khai kết xuất pixel con của Adobe. Thật không may, tôi đã thấy rằng Adobe Reader luôn tắt chế độ hiển thị pixel phụ (trên cơ sở mỗi trang) ngay khi trang chứa các thành phần trong suốt. Một ví dụ:

Hình dạng màu xanh đục, văn bản được hiển thị bằng subpixels:

mờ mịt

Hình dạng màu xanh trong suốt 50%, văn bản được hiển thị với khử răng cưa tiêu chuẩn:

trong suốt

Hai tệp pdf tương ứng đã được tạo theo cùng một cách chính xác (sử dụng TikZ / PGF với pdflatex), ngoại trừ chỉ định độ trong suốt trong trường hợp thứ hai. Tôi đã tự làm những bản pdf này, nhưng tôi thường xuyên quan sát thấy hiệu ứng tương tự với pdf từ các nguồn hoàn toàn khác nhau. Thật kỳ lạ, Foxit Reader và Okular kết xuất hai pdf giống nhau theo một cách hoàn toàn giống nhau (tất nhiên ngoại trừ phần trong suốt), nhưng ở IMHO có chất lượng kém hơn.

Câu hỏi của tôi: Có ai biết tại sao điều này xảy ra, và liệu / làm thế nào nó có thể tránh được?


Đây có thể là một lỗi trong Adobe, được nêu lên tốt hơn trong các diễn đàn của họ. Bạn có thể thử cải thiện hiển thị phông chữ trong Linux (phiên bản nào?) Bằng cách sử dụng Infinality . Xem thêm Cấu hình phông chữ archlinux - Infinality .
harrymc

@harrymc Tôi nghi ngờ điều này ảnh hưởng đến kết xuất phông chữ Adobe Reader, nhưng nó là một mẹo thú vị khác. Có lẽ Okular trở nên tốt hơn theo cách này. Cảm ơn!
A. Donda

@slhck, tôi nghĩ tôi đã đặt tiền thưởng cho việc này? Bạn đã thực hiện điều này bằng cách nào đó, hoặc tôi chỉ bối rối? Dù sao cũng cảm ơn bạn
A. Donda

Câu trả lời:


1

Kết xuất Subpixel được thực hiện bằng cách sử dụng các màu riêng lẻ của một pixel. Mỗi pixel trên màn hình được tạo thành bởi một pixel thậm chí nhỏ hơn với màu đỏ, xanh lá cây và xanh dương.

Nếu bạn muốn kết xuất một đối tượng rộng 10,3 pixel, bạn sẽ chỉ sử dụng màu đỏ của pixel thứ 11. Màn hình sau đó sẽ phát ra ánh sáng từ 31 pixel, tức là 10 pixel đầy đủ và sau đó là một phần ba pixel.

Nếu bạn cố gắng tự mô phỏng hiệu ứng này, chỉ cần vẽ 10 pixel trắng rộng, rồi một pixel đỏ ở bên phải trên nền đen, bạn sẽ thấy hiệu ứng đó.

Vấn đề là bạn sẽ nhận thấy rằng cạnh phải sẽ có màu đỏ, điều này nếu bạn chỉ đơn giản làm theo cách đó. Nhiều khả năng, Adobe phải sử dụng các thuật toán tiên tiến để loại bỏ hiệu ứng đó - có thể bằng cách khuếch đại giá trị của màu đỏ và màu xanh lá cây của pixel thứ 10.

Thêm độ trong suốt cho một thuật toán đã khá tiên tiến có lẽ là điều họ chưa giải quyết được và do đó, họ chỉ đơn giản là vô hiệu hóa kết xuất pixel phụ.

Tôi tin rằng đây là trường hợp, bởi vì tôi đã cố gắng thực hiện kết xuất pixel con theo cách ngây thơ này và tôi đã thấy hiệu ứng "mặt màu" đó.


Vâng, hiệu ứng cạnh màu chắc chắn là có, bạn cũng có thể thấy nó trong các ảnh chụp màn hình được phóng to ở trên, và tôi không thực sự thấy làm thế nào nó có thể tránh được. Tôi nghĩ rằng kết xuất pixel con chỉ có ý nghĩa khi toàn bộ pixel đã nhỏ. Có lẽ bạn đúng, rằng nó quá phức tạp.
A. Donda

Tôi tin rằng họ quá phức tạp. Nếu không, công nghệ sẽ không xứng đáng với những cái tên hay như vậy :)
frodeborli

Chỉ cần lưu ý: thứ tự của các subpixels có thể không phải luôn luôn là RGB. Nếu chúng ta nhìn vào các ảnh chụp màn hình do OP cung cấp, có vẻ như đó là thứ tự BGR: subpixels ở các cạnh trái có màu đỏ, trong khi các subpixels ở các cạnh phải có màu xanh.
Johan Boulé

0

Đây có thể là một lỗi trong Adobe, được nêu lên tốt hơn trong các diễn đàn của họ.

Để cải thiện hiển thị phông chữ trong Linux, bạn có thể thử sử dụng Infinality:

Infinality là một tập hợp các bản vá Freetype cố gắng cung cấp kết xuất phông chữ được cải thiện cho Linux và cũng để cho phép tùy chỉnh dễ dàng để người dùng có thể điều chỉnh các cài đặt theo sở thích của họ. Sử dụng nó, bạn có thể dễ dàng đặt kiểu phông chữ để mô phỏng OSX, OSX2, Windows 98, Windows XP hoặc Windows 7 hoặc bạn có thể sử dụng kiểu "Linux" hoặc "Infinality" (mặc định).

Xem :

Kết xuất phông chữ tốt hơn trong Linux với
cấu hình phông chữ Archlinux Infinality - Infinality .


Tôi đánh giá cao các mẹo và tôi sẽ đi và hỏi trong các diễn đàn Adobe. Tuy nhiên, tôi không nghĩ rằng điều này đủ điều kiện là một câu trả lời.
A. Donda

Không vấn đề gì. Bạn có muốn tôi xóa cái này không?
harrymc

Không, tôi chỉ muốn giải thích lý do tại sao tôi không upvote.
A. Donda

Thật không may, đây dường như là câu trả lời duy nhất bạn sẽ nhận được.
harrymc
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.