From 670d72a64bb304ae5c94f22c5be6e6cb1ad810ef Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Thu, 15 May 2003 02:25:59 +0000 Subject: [PATCH] MFH --- ext/gd/gd.c | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/ext/gd/gd.c b/ext/gd/gd.c index 097b983df6..d48c3c0130 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -3396,28 +3396,32 @@ PHP_FUNCTION(imagepstext) transform = T1_RotateMatrix(NULL, angle); } - extend = T1_GetExtend(*f_ind); - str_path = T1_GetCharOutline(*f_ind, str[0], size, transform); + if (width) { + extend = T1_GetExtend(*f_ind); + str_path = T1_GetCharOutline(*f_ind, str[0], size, transform); - if (!str_path) { - if (T1_errno) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "libt1 returned error %d", T1_errno); + if (!str_path) { + if (T1_errno) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "libt1 returned error %d", T1_errno); + } + RETURN_FALSE; } - RETURN_FALSE; - } - for (i = 1; i < str_len; i++) { - amount_kern = (int) T1_GetKerning(*f_ind, str[i-1], str[i]); - amount_kern += str[i-1] == ' ' ? space : 0; - add_width = (int) (amount_kern+width)/extend; + for (i = 1; i < str_len; i++) { + amount_kern = (int) T1_GetKerning(*f_ind, str[i-1], str[i]); + amount_kern += str[i-1] == ' ' ? space : 0; + add_width = (int) (amount_kern+width)/extend; - char_path = T1_GetMoveOutline(*f_ind, add_width, 0, 0, size, transform); - str_path = T1_ConcatOutlines(str_path, char_path); - - char_path = T1_GetCharOutline(*f_ind, str[i], size, transform); - str_path = T1_ConcatOutlines(str_path, char_path); + char_path = T1_GetMoveOutline(*f_ind, add_width, 0, 0, size, transform); + str_path = T1_ConcatOutlines(str_path, char_path); + + char_path = T1_GetCharOutline(*f_ind, str[i], size, transform); + str_path = T1_ConcatOutlines(str_path, char_path); + } + str_img = T1_AAFillOutline(str_path, 0); + } else { + str_img = T1_AASetString(*f_ind, str, str_len, space, T1_KERNING, size, transform); } - str_img = T1_AAFillOutline(str_path, 0); if (T1_errno) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "libt1 returned error %d", T1_errno); -- 2.40.0