Commit:    bf9ad4e661be4f3eebe3511887e10e521cce7f93
Author:    Lars Strojny <lstro...@php.net>         Mon, 14 Jan 2013 18:52:38 
+0100
Parents:   1e9a3ed234af443170d9ea8280a556d85299e301
Branches:  PHP-5.4

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=bf9ad4e661be4f3eebe3511887e10e521cce7f93

Log:
Support BITMAPV5HEADER in getimagesize(): 
https://en.wikipedia.org/wiki/BMP_file_format#DIB_header_.28bitmap_information_header.29

Changed paths:
  M  NEWS
  M  ext/standard/image.c
  M  ext/standard/tests/image/getimagesize.phpt
  M  ext/standard/tests/image/image_type_to_mime_type.phpt
  A  ext/standard/tests/image/test1bpix.bmp


Diff:
diff --git a/NEWS b/NEWS
index 26ce118..16c0771 100644
--- a/NEWS
+++ b/NEWS
@@ -3,11 +3,12 @@ PHP                                                           
             NEWS
 ?? ??? 2012, PHP 5.4.12
 
 - Core:
-  . Fixed bug #63982 (isset() inconsistently produces a fatal error on 
+  . Fixed bug #63982 (isset() inconsistently produces a fatal error on
     protected property). (Stas)
   . Fixed bug #63943 (Bad warning text from strpos() on empty needle).
     (Laruence)
   . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry)
+  . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars)
 
 - Litespeed:
   . Fixed bug #63228 (-Werror=format-security error in lsapi code). (George)
@@ -26,7 +27,7 @@ PHP                                                           
             NEWS
   . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)
   . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user).
     (Johannes)
-  . Fixed bug #43177 (Errors in eval()'ed code produce status code 500). 
+  . Fixed bug #43177 (Errors in eval()'ed code produce status code 500).
     (Todd Ruth, Stas).
 
 - Filter:
diff --git a/ext/standard/image.c b/ext/standard/image.c
index ebf894a..4984e40 100644
--- a/ext/standard/image.c
+++ b/ext/standard/image.c
@@ -159,7 +159,7 @@ static struct gfxinfo *php_handle_bmp (php_stream * stream 
TSRMLS_DC)
                result->width    =  (((unsigned int)dim[ 5]) << 8) + ((unsigned 
int) dim[ 4]);
                result->height   =  (((unsigned int)dim[ 7]) << 8) + ((unsigned 
int) dim[ 6]);
                result->bits     =  ((unsigned int)dim[11]);
-       } else if (size > 12 && (size <= 64 || size == 108)) {
+       } else if (size > 12 && (size <= 64 || size == 108 || size == 124)) {
                result = (struct gfxinfo *) ecalloc (1, sizeof(struct gfxinfo));
                result->width    =  (((unsigned int)dim[ 7]) << 24) + 
(((unsigned int)dim[ 6]) << 16) + (((unsigned int)dim[ 5]) << 8) + ((unsigned 
int) dim[ 4]);
                result->height   =  (((unsigned int)dim[11]) << 24) + 
(((unsigned int)dim[10]) << 16) + (((unsigned int)dim[ 9]) << 8) + ((unsigned 
int) dim[ 8]);
diff --git a/ext/standard/tests/image/getimagesize.phpt 
b/ext/standard/tests/image/getimagesize.phpt
index ab79c9c..6cd8275 100644
--- a/ext/standard/tests/image/getimagesize.phpt
+++ b/ext/standard/tests/image/getimagesize.phpt
@@ -23,7 +23,22 @@ GetImageSize()
        var_dump($result);
 ?>
 --EXPECT--
-array(11) {
+array(12) {
+  ["test1bpix.bmp"]=>
+  array(6) {
+    [0]=>
+    int(500)
+    [1]=>
+    int(345)
+    [2]=>
+    int(6)
+    [3]=>
+    string(24) "width="500" height="345""
+    ["bits"]=>
+    int(32)
+    ["mime"]=>
+    string(14) "image/x-ms-bmp"
+  }
   ["test1pix.bmp"]=>
   array(6) {
     [0]=>
diff --git a/ext/standard/tests/image/image_type_to_mime_type.phpt 
b/ext/standard/tests/image/image_type_to_mime_type.phpt
index 5d94a6f..d83ab8d 100644
--- a/ext/standard/tests/image/image_type_to_mime_type.phpt
+++ b/ext/standard/tests/image/image_type_to_mime_type.phpt
@@ -1,8 +1,8 @@
 --TEST--
 image_type_to_mime_type()
 --SKIPIF--
-<?php 
-       if (!function_exists('image_type_to_mime_type')) die('skip 
image_type_to_mime_type() not available'); 
+<?php
+       if (!function_exists('image_type_to_mime_type')) die('skip 
image_type_to_mime_type() not available');
        require_once('skipif_imagetype.inc');
 ?>
 --FILE--
@@ -25,7 +25,9 @@ image_type_to_mime_type()
        var_dump($result);
 ?>
 --EXPECT--
-array(11) {
+array(12) {
+  ["test1bpix.bmp"]=>
+  string(14) "image/x-ms-bmp"
   ["test1pix.bmp"]=>
   string(14) "image/x-ms-bmp"
   ["test1pix.jp2"]=>
@@ -48,4 +50,4 @@ array(11) {
   string(29) "application/x-shockwave-flash"
   ["test4pix.tif"]=>
   string(10) "image/tiff"
-}
\ No newline at end of file
+}
diff --git a/ext/standard/tests/image/test1bpix.bmp 
b/ext/standard/tests/image/test1bpix.bmp
new file mode 100644
index 0000000..5522e50
Binary files /dev/null and b/ext/standard/tests/image/test1bpix.bmp differ


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to