summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2004-05-09 17:34:02 +0000
committerIlia Alshanetsky <iliaa@php.net>2004-05-09 17:34:02 +0000
commit349514ed2d7440fea8173340e384b532cbe38bb1 (patch)
treee7ece0b84638444fd99f79467798b58fee667e23
parentd676db754170ab9ad7ddbbe8d2799a2a431d88ac (diff)
downloadphp-git-349514ed2d7440fea8173340e384b532cbe38bb1.tar.gz
MFH:
Upgrade bundled GD library to 2.0.23. Fixed bug #28175 (build problem for people using FreeType 2.1.0-2.1.2).
-rw-r--r--NEWS3
-rw-r--r--ext/gd/gd.c2
-rw-r--r--ext/gd/libgd/gdft.c20
3 files changed, 21 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index 8ff58d43cb..54d70f6623 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
PHP 4 NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2004, Version 4.3.7
+- Upgraded bundled GD library to 2.0.23. (Ilia)
- Fixed possible crash inside pg_copy_(to|from) function if delimiter is more
then 1 character long. (Ilia)
- Fixed handling of return values from storred procedures in mssql_execute()
@@ -12,6 +13,8 @@ PHP 4 NEWS
(Ilia)
- Fixed bug #28196 (missing error constants in cURL extension). (Ilia)
- Fixed bug #28187 (parse_url() not handling embedded IPv6 in URLs). (Sara)
+- Fixed bug #28175 (build problem for people using FreeType 2.1.0-2.1.2).
+ (Ilia)
- Fixed bug #28147 (Crash with drawing anti-aliased lines). (Derick)
- Fixed bug #28112 (sqlite_query() crashing apache on malformed query). (Ilia,
Marcus)
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index f37dc86eab..8903d4935f 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -390,7 +390,7 @@ PHP_RSHUTDOWN_FUNCTION(gd)
/* }}} */
#if HAVE_GD_BUNDLED
-#define PHP_GD_VERSION_STRING "bundled (2.0.22 compatible)"
+#define PHP_GD_VERSION_STRING "bundled (2.0.23 compatible)"
#elif HAVE_LIBGD20
#define PHP_GD_VERSION_STRING "2.0 or higher"
#elif HAVE_GDIMAGECOLORRESOLVE
diff --git a/ext/gd/libgd/gdft.c b/ext/gd/libgd/gdft.c
index 844e92ff2e..307b92204f 100644
--- a/ext/gd/libgd/gdft.c
+++ b/ext/gd/libgd/gdft.c
@@ -473,7 +473,7 @@ static void *fontFetch (char **error, void *key)
encoding = charmap->encoding_id;
/* EAM DEBUG - Newer versions of libfree2 make it easier by defining encodings */
-#if (defined(FREETYPE_MAJOR) && (FREETYPE_MAJOR >=2 ) && (FREETYPE_MINOR >= 1))
+#if (defined(FREETYPE_MAJOR) && ((FREETYPE_MAJOR == 2 && ((FREETYPE_MINOR == 1 && FREETYPE_PATCH >= 3) || FREETYPE_MINOR > 1) || FREETYPE_MAJOR > 2)))
if (charmap->encoding == FT_ENCODING_MS_SYMBOL
|| charmap->encoding == FT_ENCODING_ADOBE_CUSTOM
|| charmap->encoding == FT_ENCODING_ADOBE_STANDARD) {
@@ -482,7 +482,7 @@ static void *fontFetch (char **error, void *key)
a->face->charmap = charmap;
return (void *)a;
}
-#endif /* Freetype 2.1 or better */
+#endif /* Freetype 2.1.3 or better */
/* EAM DEBUG */
if ((platform == 3 && encoding == 1) /* Windows Unicode */
@@ -843,6 +843,8 @@ gdImageStringFTEx (gdImage * im, int *brect, int fg, char *fontlist, double ptsi
* colorindexes. -- 27.06.2001 <krisku@arrak.fi>
*/
gdCache_head_t *tc_cache;
+ /* Tuneable horizontal and vertical resolution in dots per inch */
+ int hdpi, vdpi;
if (strex && ((strex->flags & gdFTEX_LINESPACE) == gdFTEX_LINESPACE)) {
linespace = strex->linespacing;
@@ -872,7 +874,19 @@ gdImageStringFTEx (gdImage * im, int *brect, int fg, char *fontlist, double ptsi
face = font->face; /* shortcut */
slot = face->glyph; /* shortcut */
- if (FT_Set_Char_Size (face, 0, (FT_F26Dot6) (ptsize * 64), GD_RESOLUTION, GD_RESOLUTION)) {
+ /*
+ * Added hdpi and vdpi to support images at non-screen resolutions, i.e. 300 dpi TIFF,
+ * or 100h x 50v dpi FAX format. 2.0.23.
+ * 2004/02/27 Mark Shackelford, mark.shackelford@acs-inc.com
+ */
+ hdpi = GD_RESOLUTION;
+ vdpi = GD_RESOLUTION;
+ if (strex && (strex->flags & gdFTEX_RESOLUTION)) {
+ hdpi = strex->hdpi;
+ vdpi = strex->vdpi;
+ }
+
+ if (FT_Set_Char_Size(face, 0, (FT_F26Dot6) (ptsize * 64), hdpi, vdpi)) {
gdCacheDelete(tc_cache);
gdMutexUnlock(gdFontCacheMutex);
return "Could not set character size";