TTF Bounding box wrong for letters below baseline
| Bug #48732 | TTF Bounding box wrong for letters below baseline | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2009-06-30 07:31 UTC | Modified: | 2009-07-27 15:14 UTC |
|
||||||||||
| From: | sta at netimage dot dk | Assigned: | tabe (profile) | |||||||||||
| Status: | Closed | Package: | GD related | |||||||||||
| PHP Version: | 5.2.10 | OS: | FreeBSD 7.1 | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2009-06-30 07:31 UTC] sta at netimage dot dk
Description: ------------ Bug #43073 fixed the bounding box for rotated texts. Unfortunately the test case only used upper case ABCDEF for the test, an not any letters that protrude below the text baseline. Hence the returned bounding box is now wrong for text like ABCQ?qyp. The code below is directly from bug #43073, only the font, demo-text and font size has been changed. Reproduce code: --------------- <?php $font = '/dana/data/ni_lib/ni_shop/fonts/CONGSEB.TTF'; # Full path to any TTF Font $delta_t = 360.0 / 16; # Make 16 steps around $g = imagecreate(800, 800); $bgnd = imagecolorallocate($g, 255, 255, 255); $black = imagecolorallocate($g, 0, 0, 0); $x = 100; $y = 0; $cos_t = cos(deg2rad($delta_t)); $sin_t = sin(deg2rad($delta_t)); for($angle = 0.0; $angle < 360.0; $angle += $delta_t) { $bbox = imagettftext($g, 20, $angle, 400 + $x, 400 + $y, $black, $font, 'Q?DFqyp?dg!()/\%▓'); imagepolygon($g, $bbox, 4, $black); imagefilledellipse($g, $bbox [0], $bbox [1], 8, 8, $black); $temp = $cos_t * $x + $sin_t * $y; $y = $cos_t * $y - $sin_t * $x; $x = $temp; } header( "Content-type: image/png"); imagepng($g); Expected result: ---------------- That the rectangles contain the entire text, including the parts that protrude below the text baseline. Actual result: -------------- Lower part of eg "q" are outside the box. Images will be attached in a second.
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2009-07-03 11:02 UTC] sta at netimage dot dk
[2009-07-03 22:42 UTC] lbayuk at pobox dot com
[2009-07-03 23:34 UTC] pajoye@php.net
[2009-07-27 15:14 UTC] tabe@php.net