The way they work is, it simply takes a character ascii value and maps it directly to a bitmap to display.
I have been doing a little bit of reading to see how that would work for asian fonts (it's fine for all western fonts, even cyrillic).
Maybe you can tell me a little bit more... if you were making Korean text, is a simple look-up table from character -> bitmap viable? It must be on some level, or even glyphs wouldn't work.
Korean text is a combination of 1~3 consonants and a vowel. Korean text can work just like what you normally do with English... however... because it is a combination of 1~3 consonants(13 single consonants and 5 doubles) and a vowel (21)... there are about 11172 possible combinations (got it from Wikipedia but not sure). Of course you can just make the consonants and vowels without combining them at first and then put them together to reduce work. Though, you must remember a consonant may have different shape and size for each combination (EX. ㄱ,기, 긴, 낀,닉,닊,닑).
Just in case if you need, I have made an example that shows all the consonants and vowel with each of the different size and shape change. This might be help you figure out how many characters you exactly need to make the font. Remember that the consonant on the top in the letter in the bottom two rows are just placeholder to show how the bottom consonants' shape and size.
(consonants and vowels only)39
ㄱㄴㄷㄹㅁㅂㅅㅇㅈㅊㅌㅍㅎㄲㄸㅃㅆㅉㅏㅑㅓㅕㅐㅔㅒㅖㅗㅜㅛㅠㅘㅚㅙㅟㅞㅡㅣㅓㅢ
(consonant 1+ vowel 1)18
가나다라마바사아자차타파하까따빠싸짜
(consonant 1+ vowel 1+consonant 1)18
각난닫랄맘밥삿앙잦찿탙팦핳깎딷빱쌌짲
(consonant 1+ vowel 1+ consonant 1+consonant 1)11
갃낝낞랅랆랇랈랉랊랋밦
P.S. Just another fact you might find helpful: When someone types korean, you first put consonant then put a vowel or two(some vowels like ㅢ requires to type ㅡandㅣ) and then put another consonant or two. Note that not all consonant can be combined on the lower side of the letter. That is why you only see few combinations for "consonant 1+ vowel 1+ consonant 1+consonant 1" part
Okay, so let me understand this... so essentially each letter will be up to three combined-- therefore each character in my string is going to essetnailyl be "bitmap offset 1," "optional bitmap offset 2," and "optional bitmap offset 3" does that sound about right?
How do you author them? For instance, right now I put text in a text file and just read it in in ascii. Would a korean text file have to be in some kind of rich text format?
I think you are on the right track with the bitmap offset 1 and two optional offsets. Most font designers either use that or one bitmap offeset only (of course with more work) .
From what i have saw on the korean font files and researching the file types, I think it is just put text on text file and read it in ascii just like what you do unless you are doing vector font stuff.
Pepper, no rush on this, but at your leisure, would you mind giving me a GIF of some sentence in Korean (something really short) how it's supposed to look, and then a plaintext file containing the same info? From that I might be able to puzzle out the rest of it, then sometime early next year I could give you a little test program to see if it's rendering Korean correctly.
I am not getting the GIF part. Do you want me to send gif. file or just a static image file(jpeg or png) that has korean sentence and also send txt. file with the same info?
So I tried to save the txt file that contains 3 korean sentences and found out that it is using unicode for korean letter instead of ascii. I think you need to use unicode to use not just Korean, but other asian languages. Also, I have found some information that might help you understand how encoding korean works.
There are two ways to encode korean in unicode (i just roughly translated this part from a korean article about unicode): completed(similar to english) and combined(combining consonants and a vowel). Unless you are attempting to use ancient korean which has way more combinations, encoding korean in a combined version has 3 times more data size than encoding korean in completed version. Because of this practical reason, most people use the completed version of encoding korean.
Basically, it(completed version) is almost similar to how english works except it has way more characters than english. There are total 11172 possible characters used in modern korean and 2350 of them are used most (though there may be some characters that may be used quite often that are excluded in those 2350 characters).
I am posting the png file of what output should look like and the actual txt file now just in case I forget about this. Just in case, I recommend you check if these are the stuff you need.
Comments
The way they work is, it simply takes a character ascii value and maps it directly to a bitmap to display.
I have been doing a little bit of reading to see how that would work for asian fonts (it's fine for all western fonts, even cyrillic).
Maybe you can tell me a little bit more... if you were making Korean text, is a simple look-up table from character -> bitmap viable? It must be on some level, or even glyphs wouldn't work.
How do you author them? For instance, right now I put text in a text file and just read it in in ascii. Would a korean text file have to be in some kind of rich text format?
From what i have saw on the korean font files and researching the file types, I think it is just put text on text file and read it in ascii just like what you do unless you are doing vector font stuff.
As for the gif part, what I want is basically:
1. An image file of what my output SHOULD look like when I do it right
2. A text file that is essentially "the data I'm going to render"
But again, don't rush on this, since I will not be touching any of it this year at all.