Re: Denkhilfe Fonts/MySQL
Kai Hauser <[email protected]>
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Message-ID | <[email protected]> |
Joerg Rossdeutscher schrieb: >Hallo > >Am Samstag, den 25.12.2004, 20:41 +0100 schrieb Kai Hauser: > > >>Hi Joerg. >>rechen mal aus: >>100^64 >>das ist die Anzahl der Unterschiede die du Speichern möchtest. >> >> > >Ne, möchte ich eben nicht. Es gibt ja nur einen Fingerprint pro Font - >also bei 400.000 Fonts ebensoviele Fingerprints. > > du hattest geschrieben: "mit Werten von 00 bis 99" nicht mit 3 Werten (00,50,99) >Naja, das Aussehen eines Fonts kann man eben nicht in einer einfach Zahl >speichern. > > Sicher kann man das, fÃŒr die CPU sind Fonts auch nur Zahlen (0,1) und auÃerdem die ganze Welt besteht nur aus Zahlen (den Film PI gesehn?) ;-) >Der Fingerprint kommt so zustande: > >Ich erstelle ein leeres Bild. >Darin wird der Buchstabe mit 128 Pixeln GröÃe geschrieben. >Dann wird der weiÃe Rand abgeschnitten. > >(Damit ist sichergestellt, daà der Buchstabe komplett drauf ist und >genau bis an den Rand geht) > >Das Bild wird jetzt unproportional gezerrt, bis es genau 128x128 Pixel >groà ist. > > geht daruch nicht der Font "kaputt"? Wie erkennt man da noch den Unterschied zw zb einem o und einer 0, unproportional gezerrt sehn die in etwa gleich aus oder? >Dann wird es in 8x8 kleine Bilder zerlegt - macht 64 Bilder. > > hmm nicht 16 Bilder, ok 64 Werte. >FÃŒr jedes dieser Bilder wird ermittelt, wieviele Pixel weiss sind, und >wie viele Schwarz, umgerechnet in Prozent. (Naja. Fast. Um der >Zweistelligkeit willen rechne ich mit 99 statt 100 als Maximum) > >Die 64 Werte ergeben dann den Fingerprint: 00 fÃŒr weiss, 99 fÃŒr Schwarz, >50 fÃŒr "halb". > > Die drei Werte kannst du in 2 bits speichern. In Zahlen wÀr das 0, 1 und 2. 00 = weis = 0 01 = schwarz = 1 10 = "halb" = 2 Um so 64 Werte zu Speichern brÀuchtest du 128 bit = 16 Byte Das kannst du evtl sogar noch in einer Varibalen in mysql speichern wenn nicht halt in 16 unsigned tinyint und da die Werte schön binÀr Vorliegen wÃŒrden kann die CPU auch schneller mit umgehn. hoffe es hilft dir etwas weiter, denn das ganze hört sich richtig Praktisch an.