Let say we do it the "real way" (well the way of some crappy corporate environment ). Start with a mockup, explain to me what you need/want.
From a technical point of view, it's more what could be needed, that what I need... then make lot of tradeoff, for instance:
- one single image for the keyboard: harder to customize and adapt to other layout -> harder to skin, less skin available. On the other side, it could allow more stuff to be down (like gradient on the whole keyboard, etc...).
etc...
Because there's nothing done yet, everything is in theory still possible.
Regarding the dimension, my only constraint are the screen size and usability. for now each row is 25 pixel height, but it could be changed or variable... it's more up to you, if you end up with a very nice design, that need 26 pixel, then it will be ...
You could do both (IMHO) You could state that the each character get's it's own .PNG - give each PNG a transparent background and then the theme creator could create a background image to place behind everything. Granted this could possibly increase the memory that the keyboard would use but IMHO this would give the greatest flexability. Just a thought