cvs: php4 /ext/standard basic_functions.c image.c php_image.h

From: Date: Sat, 22 Jun 2002 18:14:39 +0000
Subject: cvs: php4 /ext/standard basic_functions.c image.c php_image.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-12446@lists.php.net to get a copy of this message
helly Sat Jun 22 14:14:39 2002 EDT Modified files: /php4/ext/standard basic_functions.c image.c php_image.h Log: @GetImageSize now returns additional index 'MimeType' and new function @imagetype2mimetype to convert php imagetypes to mime-types. (Marcus) #the reason why i export php_imagetype2mimetype is that i use that for #exif, too. Followup example will explain why. Index: php4/ext/standard/basic_functions.c diff -u php4/ext/standard/basic_functions.c:1.479 php4/ext/standard/basic_functions.c:1.480 --- php4/ext/standard/basic_functions.c:1.479 Wed Jun 12 13:25:48 2002 +++ php4/ext/standard/basic_functions.c Sat Jun 22 14:14:39 2002 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: basic_functions.c,v 1.479 2002/06/12 17:25:48 sniper Exp $ */ +/* $Id: basic_functions.c,v 1.480 2002/06/22 18:14:39 helly Exp $ */ #include "php.h" #include "php_streams.h" @@ -281,6 +281,7 @@ PHP_FE(iptcparse, NULL) PHP_FE(iptcembed, NULL) PHP_FE(getimagesize, second_args_force_ref) + PHP_FE(imagetype2mimetype, NULL) PHP_FE(phpinfo, NULL) PHP_FE(phpversion, NULL) Index: php4/ext/standard/image.c diff -u php4/ext/standard/image.c:1.57 php4/ext/standard/image.c:1.58 --- php4/ext/standard/image.c:1.57 Sat Jun 22 13:09:28 2002 +++ php4/ext/standard/image.c Sat Jun 22 14:14:39 2002 @@ -16,7 +16,7 @@ | Marcus Boerger <helly@php.net> | +----------------------------------------------------------------------+ */ -/* $Id: image.c,v 1.57 2002/06/22 17:09:28 helly Exp $ */ +/* $Id: image.c,v 1.58 2002/06/22 18:14:39 helly Exp $ */ /* * Based on Daniel Schmitt's imageinfo.c which carried the following * Copyright notice. @@ -65,7 +65,7 @@ PHPAPI const char php_sig_tif_ii[4] = {'I','I', (char)0x2A, (char)0x00}; PHPAPI const char php_sig_tif_mm[4] = {'M','M', (char)0x00, (char)0x2A}; PHPAPI const char php_sig_jpc[3] = {(char)0xFF, (char)0x4F, (char)0xff}; - +/* REMEMBER TO ADD MIME-TYPE TO FUNCTION php_imagetype2mimetype */ /* return info as a struct, to make expansion easier */ @@ -668,6 +668,50 @@ } /* }}} */ +/* {{{ php_imagetype2mimetype + * Convert internal image_type to mime type */ +PHPAPI const char * php_imagetype2mimetype(int image_type) +{ + switch( image_type) { + case IMAGE_FILETYPE_GIF: + return "image/gif"; + case IMAGE_FILETYPE_JPEG: + case IMAGE_FILETYPE_JPC: + return "image/jpeg"; + case IMAGE_FILETYPE_PNG: + return "image/png"; + case IMAGE_FILETYPE_SWF: + case IMAGE_FILETYPE_SWC: + return "application/x-shockwave-flash"; + case IMAGE_FILETYPE_PSD: + return "image/psd"; + case IMAGE_FILETYPE_BMP: + return "image/bmp"; + case IMAGE_FILETYPE_TIFF_II: + case IMAGE_FILETYPE_TIFF_MM: + return "image/tiff"; + default: + case IMAGE_FILETYPE_UNKNOWN: + return "application/octet-stream"; /* suppose binary format */ + } +} +/* }}} */ + +/* {{{ proto array imagetype2mimetype(int imagetype) + Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype */ +PHP_FUNCTION(imagetype2mimetype) +{ + zval **p_image_type; + int arg_c = ZEND_NUM_ARGS(); + + if ((arg_c!=1) || zend_get_parameters_ex(arg_c, &p_image_type) == FAILURE) { + WRONG_PARAM_COUNT; + } + zval_dtor(*p_image_type); + ZVAL_STRING(return_value, (char*)php_imagetype2mimetype(Z_LVAL_PP(p_image_type)), 1); +} +/* }}} */ + /* {{{ php_imagetype detect filetype from first bytes */ PHPAPI int php_getimagetype(php_stream * stream, char *filetype TSRMLS_DC) @@ -824,6 +868,7 @@ if (result->channels != 0) { add_assoc_long(return_value, "channels", result->channels); } + add_assoc_string(return_value, "mime", (char*)php_imagetype2mimetype(itype), 1); efree(result); } else { RETURN_FALSE; Index: php4/ext/standard/php_image.h diff -u php4/ext/standard/php_image.h:1.14 php4/ext/standard/php_image.h:1.15 --- php4/ext/standard/php_image.h:1.14 Thu May 23 17:48:27 2002 +++ php4/ext/standard/php_image.h Sat Jun 22 14:14:39 2002 @@ -17,13 +17,15 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_image.h,v 1.14 2002/05/23 21:48:27 derick Exp $ */ +/* $Id: php_image.h,v 1.15 2002/06/22 18:14:39 helly Exp $ */ #ifndef PHP_IMAGE_H #define PHP_IMAGE_H PHP_FUNCTION(getimagesize); +PHP_FUNCTION(imagetype2mimetype); + /* {{{ enum image_filetype This enum is used to have ext/standard/image.c and ext/exif/exif.c use the same constants for file types. @@ -47,5 +49,7 @@ /* }}} */ PHPAPI int php_getimagetype(php_stream *stream, char *filetype TSRMLS_DC); + +PHPAPI const char * php_imagetype2mimetype(int image_type); #endif /* PHP_IMAGE_H */

« previous php.cvs (#12446) next »