note 105593 modified in function.imagettfbbox by danbrown

From: Date: Wed, 31 Aug 2011 00:14:20 +0000
Subject: note 105593 modified in function.imagettfbbox by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-182841@lists.php.net to get a copy of this message
Very CLEAR version of func., with example.... <?php function calculateTextBox($text,$fontFile,$fontSize,$fontAngle) { /************ simple function that calculates the *exact* bounding box (single pixel precision). The function returns an associative array with these keys: left, top: coordinates you will pass to imagettftext width, height: dimension of the image you have to create *************/ $rect = imagettfbbox($fontSize,$fontAngle,$fontFile,$text); $minX = min(array($rect[0],$rect[2],$rect[4],$rect[6])); $maxX = max(array($rect[0],$rect[2],$rect[4],$rect[6])); $minY = min(array($rect[1],$rect[3],$rect[5],$rect[7])); $maxY = max(array($rect[1],$rect[3],$rect[5],$rect[7])); return array( "left" => abs($minX) - 1, "top" => abs($minY) - 1, "width" => $maxX - $minX, "height" => $maxY - $minY, "box" => $rect ); } // Example usage - gif image output $text_string = "Hullo World"; $font_ttf = "./fonts/arial.ttf"; $font_size = 22; $text_angle = 0; $text_padding = 10; // Img padding - around text $the_box = calculateTextBox($text_string, $font_ttf, $font_size, $text_angle); $imgWidth = $the_box["width"] + $text_padding; $imgHeight = $the_box["height"] + $text_padding; $image = imagecreate($imgWidth,$imgHeight); imagefill($image, imagecolorallocate($image,200,200,200)); $color = imagecolorallocate($image,0,0,0); imagettftext($image, $font_size, $text_angle, $the_box["left"] + ($imgWidth / 2) - ($the_box["width"] / 2), $the_box["top"] + ($imgHeight / 2) - ($the_box["height"] / 2), $color, $font_ttf, $text_string); header("Content-Type: image/gif"); imagegif($image); imagedestroy($image); ?> [ remember: No spaces before or after the <?php ... ?> tag, because of header() call, you Roast! ] --was-- Very CLEAR version of func., with example, and where to download fonts.... <?php function calculateTextBox($text,$fontFile,$fontSize,$fontAngle) { /************ simple function that calculates the *exact* bounding box (single pixel precision). The function returns an associative array with these keys: left, top: coordinates you will pass to imagettftext width, height: dimension of the image you have to create *************/ $rect = imagettfbbox($fontSize,$fontAngle,$fontFile,$text); $minX = min(array($rect[0],$rect[2],$rect[4],$rect[6])); $maxX = max(array($rect[0],$rect[2],$rect[4],$rect[6])); $minY = min(array($rect[1],$rect[3],$rect[5],$rect[7])); $maxY = max(array($rect[1],$rect[3],$rect[5],$rect[7])); return array( "left" => abs($minX) - 1, "top" => abs($minY) - 1, "width" => $maxX - $minX, "height" => $maxY - $minY, "box" => $rect ); } // Example usage - gif image output $text_string = "Hullo World"; $font_ttf = "./fonts/arial.ttf"; // Download http://sugarscript.com/scripts/text_2_img/fonts.zip $font_size = 22; $text_angle = 0; $text_padding = 10; // Img padding - around text $the_box = calculateTextBox($text_string, $font_ttf, $font_size, $text_angle); $imgWidth = $the_box["width"] + $text_padding; $imgHeight = $the_box["height"] + $text_padding; $image = imagecreate($imgWidth,$imgHeight); imagefill($image, imagecolorallocate($image,200,200,200)); $color = imagecolorallocate($image,0,0,0); imagettftext($image, $font_size, $text_angle, $the_box["left"] + ($imgWidth / 2) - ($the_box["width"] / 2), $the_box["top"] + ($imgHeight / 2) - ($the_box["height"] / 2), $color, $font_ttf, $text_string); header("Content-Type: image/gif"); imagegif($image); imagedestroy($image); ?> [ remember: No spaces before or after the <?php ... ?> tag, because of header() call, you Roast! ] http://php.net/manual/en/function.imagettfbbox.php

« previous php.notes (#182841) next »