M. Sokolewicz wrote:
Jacob Friis wrote:

I have created a function that will measure the width of a text string in pixels. It works ok.
If you have optimizations, please let me know.
Thanks,
Jacob


function txt_width ($txt) {
    $width = 0;
    $txt_len = strlen($txt);
    for ($n = 1; $n <= $txt_len; $n++) {
        switch (substr($txt, $n, 1)) {
            case 'l';
            case '.';
            case ' ';
            case '-';
            case 't';
                $width += 3;
                break;
            default :
                $width += 8;
                break;
        }
    }
    return $width;
}

the width depends on the font used (monospace or not), the kerning used, the size of whitespaces, etc. you can't say "the width of X will be Y" without knowing the font, font size, kerning, etc.

I know, I had thought about that I could multiply the result according to what I know about the font.


It works ok so far for my purpose, which is to measure the width of menu elements in dhtmlcentral.com's coolmenus.

/Jacob

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to