Yazı tipi oluşturma aslında nasıl çalışır?


11

Bilgisayarımda yazı tiplerinin oluşturulma şekli hakkında hiçbir şey bilmediğimin farkındayım.

Gözleyebildiğim kadarıyla, yazı tipi oluşturma genellikle sistem genelinde tutarlı bir şekilde yapılır. Örneğin, DE kontrol panelimde yapılandırdığım alt piksel yazı tipi ipucu ayarlarının pencere kenarlarında, tarayıcımda, metin düzenleyicimde vb. Görünen metin üzerinde etkisi vardır. (Bazı Java uygulamalarının gözle görülür bir fark gösterdiğini gözlemlemeliyim, bu yüzden farklı bir yazı tipi oluşturma mekanizması kullanıyorlar).

Yukarıda aldığım şey, muhtemelen yazı tipi oluşturma ihtiyacı olan tüm uygulamaların bazı OS (veya DE) çapında kitaplıktan yararlanmasıdır.

Öte yandan, tarayıcılar genellikle kendi oluşturmalarını, belirli akış kurallarına göre metin dahil çeşitli öğelerin konumlandırılmasına özen gösteren bir oluşturma motoru aracılığıyla yönetir.

Bu iki gerçeğin nasıl uyumlu olduğundan emin değilim. Tarayıcının işletim sisteminden belirli bir konumda bir glif çizmesini istemesi gerektiğini varsayarım, ancak glifin ne kadar yer alacağını bilmeden metin akışını nasıl yönetebilir? Glif boyutlarını belirlemek için ayrı çağrılar var mı, böylece tarayıcının akışı, karakterler daha sonra işletim sistemi tarafından doldurulan küçük kutularmış gibi yönetebiliyor mu? (Her ne kadar bu karakter aralığıyla ilgilenmez). Veya işletim sistemi, metin akışı da dahil olmak üzere tam bir metin alanı çizmekten sorumlu mudur? İşletim sistemi, oluşturulan glifi bir bitmap olarak döndürür ve bunu ekranda çizmek için uygulamaya bırakır mı?


1
Kısa cevap "evet".
Graham Borland

@GrahamBorland ...: - / Üç alternatiften hangisini betimlediğim "evet" cevabı mı?
Andrea

Hepsi, koşullara bağlı olarak. Doğru bir cevap oluşturmaya çalışacağım.
Graham Borland

Yanıtlar:


9

Genel olarak, uygulamaların yazı tipi oluşturma işlemi için işletim sistemi veya bir GUI araç seti tarafından sağlanan kitaplıkları kullandıkları doğrudur.

Tipik yazı tipi motorları bir dizi çalışma moduna izin verir. Basit bir durumda, bir uygulama belirli bir konumda bir metin dizisi çizilmesini isteyebilir ve motor her şeyi halleder (ölçüm, konumlandırma, pikselleri ekrana çizme, vb.).

Daha ince bir kontrol gerektiren uygulamalar için - tarayıcılar veya kelime işlemciler - motor, uygulamanın belirli bir metin parçasının önceden ölçülmesini isteyebileceği arayüzleri ortaya çıkaracaktır. Uygulama daha sonra bu bilgiyi, bir satıra ne kadar metin sığabileceğini, satır kesmelerinin nerede olması gerektiğini, bir paragrafın ne kadar yer alacağını vb. Öğrenmek için kullanabilir. piksel.

(Motorun maksimum genişlik parametresini ve muhtemelen bazı karakter aralığı / dolgu parametrelerini alabileceği ve sığabilecek kadar otomatik olarak metin oluşturabileceği bir ara senaryo olabilir.)

Son olarak, yazı tipi motoru, uygulamanın belirli bir boyutta önceden oluşturulmuş gliflerin bitmaplerini döndürerek uygulamanın son ekrana konumlandırmasını ve birleştirmesini sağlayarak uygulamanın metnin son oluşturulmasını devralmasına izin verebilir. Ya da motor, bazı vektör araç takımlarıyla işleme için ham glif anahat verilerini döndürmeyi bile önerebilir.

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.