]> granicus.if.org Git - php/commitdiff
MFH
authorIlia Alshanetsky <iliaa@php.net>
Thu, 15 May 2003 02:25:59 +0000 (02:25 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Thu, 15 May 2003 02:25:59 +0000 (02:25 +0000)
ext/gd/gd.c

index 097b983df69a9c779c90eb878bd8c32c39a60506..d48c3c01300fdbe5f0fd723951f076c44c3a38d1 100644 (file)
@@ -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);