cvs: pecl /freeimage CREDITS freeimage.c php_freeimage.h readme

From: Date: Wed, 07 Jan 2004 08:42:41 +0000
Subject: cvs: pecl /freeimage CREDITS freeimage.c php_freeimage.h readme
Groups: php.pecl.cvs 
Request: Send a blank email to pecl-cvs+get-656@lists.php.net to get a copy of this message
wenlong Wed Jan 7 03:42:41 2004 EDT Modified files: /pecl/freeimage CREDITS freeimage.c php_freeimage.h readme Log: Added FreeImage_Rescale(), FreeImage_GetFIFDescription(), FreeImage_GetFIFExtensionList(), FreeImage_GetFIFFromMime(), FreeImage_GetFIFRegExpr(), FreeImage_GetFIFFromFilename(), FreeImage_GetFIFFormFormat(), FreeImage_GetFormatFromFIF(), FreeImage_GetICCProfile(), FreeImage_InsertPage(), FreeImage_IsLittleEdian(), FreeImage_LockPage(), FreeImage_MovePage(), FreeImage_OpenMultiBitmap(), FreeImage_UnLockPage()

Index: pecl/freeimage/CREDITS diff -u pecl/freeimage/CREDITS:1.1.1.1 pecl/freeimage/CREDITS:1.2 --- pecl/freeimage/CREDITS:1.1.1.1 Fri Jan 2 01:37:26 2004 +++ pecl/freeimage/CREDITS Wed Jan 7 03:42:40 2004 @@ -1,3 +1,3 @@ freeimage Noon <noon@ms8.url.com.tw> -Wenlong Wu <phpteam@vip.sina.com> \ No newline at end of file +Wenlong Wu <wenlong@php.net> \ No newline at end of file Index: pecl/freeimage/freeimage.c diff -u pecl/freeimage/freeimage.c:1.4 pecl/freeimage/freeimage.c:1.5 --- pecl/freeimage/freeimage.c:1.4 Tue Jan 6 05:58:45 2004 +++ pecl/freeimage/freeimage.c Wed Jan 7 03:42:40 2004 @@ -13,11 +13,11 @@ | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: Noon <noon@ms8.url.com.tw> | - | Wenlong Wu <phpteam@vip.sina.com> | + | Wenlong Wu <wenlong@php.net> | +----------------------------------------------------------------------+ */ -/* $Id: freeimage.c,v 1.4 2004/01/06 10:58:45 wenlong Exp $ */ +/* $Id: freeimage.c,v 1.5 2004/01/07 08:42:40 wenlong Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -368,8 +368,8 @@ FIBITMAP *bitmap; double percentage; - if (ZEND_NUM_ARGS() != 2 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rd", &z_dib, &percentage) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rd", &z_dib, &percentage) == FAILURE) { + RETURN_FALSE; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); if (FreeImage_AdjustBrightness(bitmap, percentage)) { @@ -389,8 +389,8 @@ FIBITMAP *bitmap; double percentage; - if (ZEND_NUM_ARGS() != 2 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rd", &z_dib, &percentage) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rd", &z_dib, &percentage) == FAILURE) { + RETURN_FALSE; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); if (FreeImage_AdjustContrast(bitmap, percentage)) { @@ -418,8 +418,8 @@ FIBITMAP *bitmap; double gamma; - if (ZEND_NUM_ARGS() != 2 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rd", &z_dib, &gamma) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rd", &z_dib, &gamma) == FAILURE) { + RETURN_FALSE; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); if (FreeImage_AdjustGamma(bitmap, gamma)) { @@ -439,7 +439,7 @@ FIBITMAP *bitmap; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lll|lll", &width, &height, &bpp, &red_mask, &green_mask, &blue_mask) == FAILURE) { - RETURN_FALSE; + return; } bitmap = FreeImage_Allocate(width, height, bpp, red_mask, green_mask, blue_mask); if (bitmap) { @@ -466,8 +466,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap, *clone; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); clone = FreeImage_Clone(bitmap); @@ -488,8 +488,8 @@ FIMULTIBITMAP *multibitmap; int flags = 0; - if (ZEND_NUM_ARGS() != 2 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|l", &z_bitmap, &flags) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|l", &z_bitmap, &flags) == FAILURE) { + RETURN_FALSE; } ZEND_FETCH_RESOURCE(multibitmap, FIMULTIBITMAP *, &z_bitmap, -1, le_freeimage_name, le_freeimage); @@ -509,8 +509,8 @@ int quantize; FIBITMAP *bitmap, *conv_bitmap; - if (ZEND_NUM_ARGS() != 2 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &z_dib, &quantize) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &z_dib, &quantize) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); @@ -534,7 +534,7 @@ FIBITMAP *bitmap; BYTE *bits; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lllllllb", &width, &height, &pitch, &bpp, &red_mask, &green_mask, &blue_mask, &topdown) == FAILURE) { - RETURN_FALSE; + return; } bits = (BYTE*)emalloc(height * pitch); @@ -795,8 +795,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap, *conv_bitmap; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); conv_bitmap = FreeImage_ConvertTo16Bits555(bitmap); @@ -817,8 +817,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap, *conv_bitmap; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); conv_bitmap = FreeImage_ConvertTo16Bits565(bitmap); @@ -839,8 +839,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap, *conv_bitmap; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); conv_bitmap = FreeImage_ConvertTo24Bits(bitmap); @@ -861,8 +861,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap, *conv_bitmap; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); @@ -883,8 +883,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap, *conv_bitmap; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); @@ -906,15 +906,15 @@ int pitch, topdown=0; unsigned bpp, red_mask, green_mask, blue_mask; FIBITMAP *bitmap; - BYTE *bits; + BYTE bits; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z/rlllllb", &z_bits, &z_dib, &pitch, &bpp, &red_mask, &green_mask, &blue_mask, &topdown) == FAILURE) { - RETURN_FALSE; + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); - bits = (BYTE*)emalloc(FreeImage_GetHeight(bitmap) * FreeImage_GetPitch(bitmap)); - FreeImage_ConvertToRawBits(bits, bitmap, pitch, bpp, red_mask, green_mask, blue_mask, topdown); + bits = (BYTE)emalloc(FreeImage_GetHeight(bitmap) * FreeImage_GetPitch(bitmap)); + FreeImage_ConvertToRawBits(&bits, bitmap, pitch, bpp, red_mask, green_mask, blue_mask, topdown); zval_dtor(z_bits); - ZVAL_STRING(z_bits, bits, 1); + ZVAL_STRING(z_bits, (char *)bits, 1); } /* }}} */ @@ -926,16 +926,16 @@ FIBITMAP *bitmap, *conv_bitmap; int left=0, top=0, right=0, bottom=0; - if (ZEND_NUM_ARGS() != 5 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllll", &z_dib, &left, &top, &right, &bottom) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllll", &z_dib, &left, &top, &right, &bottom) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); conv_bitmap = FreeImage_Copy(bitmap, left, top, right, bottom); if (conv_bitmap) { ZEND_REGISTER_RESOURCE(return_value, conv_bitmap, le_freeimage); } else { - php_error(E_WARNING, "FreeImage_Copy failed"); - RETURN_FALSE; + //php_error(E_WARNING, "FreeImage_Copy failed"); + return; } } /* }}} */ @@ -956,8 +956,8 @@ FIMULTIBITMAP *multibitmap; int page=0; - if (ZEND_NUM_ARGS() != 2 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &z_bitmap, &page) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &z_bitmap, &page) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(multibitmap, FIMULTIBITMAP *, &z_bitmap, -1, le_freeimage_name, le_freeimage); @@ -972,8 +972,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); @@ -988,8 +988,8 @@ zval *z_dib=NULL; FREE_IMAGE_DITHER algorithm; FIBITMAP *bitmap, *conv_bitmap; - if (ZEND_NUM_ARGS() != 2 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &z_dib, &algorithm) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &z_dib, &algorithm) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); conv_bitmap = FreeImage_Dither(bitmap, (FREE_IMAGE_DITHER)algorithm); @@ -1008,8 +1008,8 @@ PHP_FUNCTION(freeimage_fifsupportsexportbpp) { int fif, bpp; - if (ZEND_NUM_ARGS() != 2 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll", &fif, &bpp) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll", &fif, &bpp) == FAILURE) { + RETURN_FALSE; } if (FreeImage_FIFSupportsExportBPP((FREE_IMAGE_FORMAT)fif, bpp)) { RETURN_TRUE; @@ -1025,8 +1025,8 @@ PHP_FUNCTION(freeimage_fifsupportsiccprofiles) { int fif; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { + RETURN_FALSE; } if (FreeImage_FIFSupportsICCProfiles((FREE_IMAGE_FORMAT)fif)) { RETURN_TRUE; @@ -1042,8 +1042,8 @@ PHP_FUNCTION(freeimage_fifsupportsreading) { int fif; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { + RETURN_FALSE; } if (FreeImage_FIFSupportsReading((FREE_IMAGE_FORMAT)fif)) { RETURN_TRUE; @@ -1059,8 +1059,8 @@ PHP_FUNCTION(freeimage_fifsupportswriting) { int fif; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { + RETURN_FALSE; } if (FreeImage_FIFSupportsWriting((FREE_IMAGE_FORMAT)fif)) { RETURN_TRUE; @@ -1077,8 +1077,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + RETURN_FALSE; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); @@ -1097,8 +1097,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + RETURN_FALSE; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); @@ -1117,8 +1117,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned bpp; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); bpp = (long)FreeImage_GetBPP(bitmap); @@ -1134,8 +1134,8 @@ FIBITMAP *bitmap; BYTE *ptr; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); ptr = (BYTE *)FreeImage_GetBits(bitmap); @@ -1155,8 +1155,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned mask; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); mask = (unsigned)FreeImage_GetBlueMask(bitmap); @@ -1173,8 +1173,8 @@ FIBITMAP *bitmap, *channel_bitmap; int channel; - if (ZEND_NUM_ARGS() != 2 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &z_dib, &channel) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &z_dib, &channel) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); channel_bitmap = (FIBITMAP *)FreeImage_GetChannel(bitmap, (FREE_IMAGE_COLOR_CHANNEL)channel); @@ -1201,8 +1201,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned type; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); type = (FREE_IMAGE_COLOR_TYPE)FreeImage_GetColorType(bitmap); @@ -1217,8 +1217,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned colors; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); colors = (unsigned)FreeImage_GetColorsUsed(bitmap); @@ -1231,7 +1231,6 @@ PHP_FUNCTION(freeimage_getcopyrightmessage) { char *str; - if (ZEND_NUM_ARGS() != 0) WRONG_PARAM_COUNT; str = (char *)FreeImage_GetCopyrightMessage(); RETURN_STRING(str, 1); } @@ -1244,8 +1243,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned size; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); size = (long)FreeImage_GetDIBSize(bitmap); @@ -1260,8 +1259,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned x; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); x = (long)FreeImage_GetDotsPerMeterX(bitmap); @@ -1276,8 +1275,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned y; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); y = (long)FreeImage_GetDotsPerMeterY(bitmap); @@ -1290,7 +1289,7 @@ PHP_FUNCTION(freeimage_getfifcount) { int fifcount; - if (ZEND_NUM_ARGS() != 0) WRONG_PARAM_COUNT; + if (ZEND_NUM_ARGS() != 0) return; fifcount = (int)FreeImage_GetFIFCount(); RETURN_LONG(fifcount); } @@ -1301,7 +1300,13 @@ and/or write. */ PHP_FUNCTION(freeimage_getfifdescription) { - RETURN_TRUE; + int fif; + char *description; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { + return; + } + description = (char *)FreeImage_GetFIFDescription(fif); + RETURN_STRING(description, 1); } /* }}} */ @@ -1310,7 +1315,13 @@ read and/or write. */ PHP_FUNCTION(freeimage_getfifextensionlist) { - RETURN_TRUE; + int fif; + char *list; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { + return; + } + list = (char *)FreeImage_GetFIFExtensionList(fif); + RETURN_STRING(list, 1); } /* }}} */ @@ -1319,7 +1330,17 @@ identifier. */ PHP_FUNCTION(freeimage_getfiffromfilename) { - RETURN_TRUE; + char *filename=NULL; + int filename_len; + FREE_IMAGE_FORMAT fif; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filename, &filename_len) == FAILURE) { + return; + } + if (php_check_open_basedir(filename TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(filename, "wb+", CHECKUID_CHECK_MODE_PARAM))) { + return; + } + fif = (long)FreeImage_GetFIFFromFilename(filename); + RETURN_LONG(fif); } /* }}} */ @@ -1327,7 +1348,14 @@ Returns a FREE_IMAGE_FORMAT identifier from the format string that was used to register the FIF. */ PHP_FUNCTION(freeimage_getfiffromformat) { - RETURN_TRUE; + int fif; + char *format=NULL; + int format_len; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &format, &format_len) == FAILURE) { + return; + } + fif = FreeImage_GetFIFFromFormat(format); + RETURN_LONG(fif); } /* }}} */ @@ -1335,7 +1363,14 @@ Returns a FREE_IMAGE_FORMAT identifier from a MIME content type string.*/ PHP_FUNCTION(freeimage_getfiffrommime) { - RETURN_TRUE; + int fif; + char *mime=NULL; + int mime_len; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &mime, &mime_len) == FAILURE) { + return; + } + fif = FreeImage_GetFIFFromMime(mime); + RETURN_LONG(fif); } /* }}} */ @@ -1344,7 +1379,13 @@ the bitmap. */ PHP_FUNCTION(freeimage_getfifregexpr) { - RETURN_TRUE; + int fif; + char *regexpr; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { + return; + } + regexpr = (char *)FreeImage_GetFIFRegExpr(fif); + RETURN_STRING(regexpr, 1); } /* }}} */ @@ -1355,11 +1396,11 @@ char *filename=NULL; int filename_len; FREE_IMAGE_FORMAT fif; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filename, &filename_len) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filename, &filename_len) == FAILURE) { + return; } if (php_check_open_basedir(filename TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(filename, "wb+", CHECKUID_CHECK_MODE_PARAM))) { - RETURN_FALSE; + return; } fif = (long)FreeImage_GetFileType(filename, 0); RETURN_LONG(fif); @@ -1378,7 +1419,13 @@ Returns the string that was used to register a plugin from the system assigned FREE_IMAGE_FORMAT. */ PHP_FUNCTION(freeimage_getformatfromfif) { - RETURN_TRUE; + int fif; + char *format; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { + return; + } + format = (char *)FreeImage_GetFormatFromFIF(fif); + RETURN_STRING(format, 1); } /* }}} */ @@ -1389,8 +1436,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned mask; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); mask = (unsigned)FreeImage_GetGreenMask(bitmap); @@ -1405,8 +1452,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned height; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); height = (long)FreeImage_GetHeight(bitmap); @@ -1414,7 +1461,7 @@ } /* }}} */ -/* {{{ proto boolean freeimage_gethistogram(resource dib, &histo, unsigned long channel) +/* {{{ proto boolean freeimage_gethistogram(resource dib, &histo[, unsigned long channel]) Computes the image histogram. For 24-bit and 32-bit images, histogram can be computed from red, green, blue and black channels. For 8-bit images, histogram is computed from the black channel.*/ PHP_FUNCTION(freeimage_gethistogram) @@ -1425,7 +1472,7 @@ unsigned long channel = FICC_BLACK; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rz|l", &z_dib, &z_histo, &channel) == FAILURE) { - WRONG_PARAM_COUNT; + RETURN_FALSE; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); @@ -1440,11 +1487,26 @@ } /* }}} */ -/* {{{ proto freeimage_geticcprofile() - */ +/* {{{ proto array freeimage_geticcprofile(resource dib) + Retrieves a pointer to the FIICCPROFILE data of the bitmap. */ PHP_FUNCTION(freeimage_geticcprofile) { - RETURN_TRUE; + zval *z_dib=NULL; + FIBITMAP *bitmap; + FIICCPROFILE *profile; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; + } + ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); + profile = FreeImage_GetICCProfile(bitmap); + if (array_init(return_value)==FAILURE) { + RETURN_FALSE; + } + add_assoc_long(return_value, "flags", profile->flags); + add_assoc_long(return_value, "size", profile->size); + // fix me? + //add_assoc_string(return_value, "data", profile->data, 1); + efree(profile); } /* }}} */ @@ -1457,8 +1519,8 @@ BITMAPINFO *info; int i; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); info = FreeImage_GetInfo(bitmap); @@ -1513,8 +1575,8 @@ FIBITMAP *bitmap; BITMAPINFOHEADER *infoheader; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); infoheader = FreeImage_GetInfoHeader(bitmap); @@ -1545,8 +1607,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned bitmap_width; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); bitmap_width = (long)FreeImage_GetLine(bitmap); @@ -1570,8 +1632,8 @@ FIMULTIBITMAP *multibitmap; int pagecount = 1; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_bitmap) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_bitmap) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(multibitmap, FIMULTIBITMAP *, &z_bitmap, -1, le_freeimage_name, le_freeimage); pagecount = (int)FreeImage_GetPageCount(multibitmap); @@ -1588,8 +1650,8 @@ RGBQUAD *pal; int i=0; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); if(FreeImage_GetBPP(bitmap) == 8) { @@ -1622,8 +1684,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned pitch; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); pitch = (long)FreeImage_GetPitch(bitmap); @@ -1638,8 +1700,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned mask; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); mask = (unsigned)FreeImage_GetRedMask(bitmap); @@ -1657,7 +1719,7 @@ int scanline; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &z_dib, &scanline) == FAILURE) { - RETURN_FALSE; + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); ptr = (BYTE *)FreeImage_GetScanLine(bitmap, scanline); @@ -1665,7 +1727,7 @@ RETURN_STRING(ptr, 1); } else { php_error(E_WARNING, "FreeImage_GetScanLine failed"); - RETURN_FALSE; + return; } } /* }}} */ @@ -1677,8 +1739,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned count; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); count = (unsigned)FreeImage_GetTransparencyCount(bitmap); @@ -1694,8 +1756,8 @@ FIBITMAP *bitmap; BYTE *ptr; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); ptr = (BYTE *)FreeImage_GetTransparencyTable(bitmap); @@ -1703,7 +1765,7 @@ RETURN_STRING(ptr, 1); } else { php_error(E_WARNING, "FreeImage_GetTransparencyTable failed"); - RETURN_FALSE; + return; } } /* }}} */ @@ -1713,7 +1775,6 @@ PHP_FUNCTION(freeimage_getversion) { char *str; - if (ZEND_NUM_ARGS() != 0) WRONG_PARAM_COUNT; str = (char *)FreeImage_GetVersion(); RETURN_STRING(str, 1); } @@ -1726,8 +1787,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; unsigned width; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); width = (long)FreeImage_GetWidth(bitmap); @@ -1735,11 +1796,20 @@ } /* }}} */ -/* {{{ proto freeimage_insertpage() - */ +/* {{{ proto void freeimage_insertpage(resource bitmap, int page, resource dib) + Inserts a new page before the given position in the bitmap. */ PHP_FUNCTION(freeimage_insertpage) { - RETURN_TRUE; + zval *z_bitmap=NULL,*z_dib=NULL; + FIMULTIBITMAP *bitmap; + FIBITMAP *dib; + int page; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlr", &z_bitmap, &page, &z_dib) == FAILURE) { + return; + } + ZEND_FETCH_RESOURCE(bitmap, FIMULTIBITMAP *, &z_bitmap, -1, le_freeimage_name, le_freeimage); + ZEND_FETCH_RESOURCE(dib, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); + FreeImage_InsertPage(bitmap, page, dib); } /* }}} */ @@ -1749,8 +1819,8 @@ { zval *z_dib=NULL; FIBITMAP *bitmap; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + RETURN_FALSE; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); if (FreeImage_Invert(bitmap)) { @@ -1761,11 +1831,15 @@ } /* }}} */ -/* {{{ proto freeimage_islittleendian() +/* {{{ proto boolean freeimage_islittleendian(void) */ PHP_FUNCTION(freeimage_islittleendian) { - RETURN_TRUE; + if (FreeImage_IsLittleEndian()) { + RETURN_TRUE; + } else { + RETURN_FALSE; + } } /* }}} */ @@ -1774,8 +1848,8 @@ PHP_FUNCTION(freeimage_ispluginenabled) { int fif; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &fif) == FAILURE) { + RETURN_FALSE; } if (FreeImage_IsPluginEnabled((FREE_IMAGE_FORMAT)fif)) { @@ -1793,8 +1867,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + RETURN_FALSE; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); @@ -1816,7 +1890,7 @@ int filename_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls|l", &fif, &filename, &filename_len, &flags) == FAILURE) { - RETURN_FALSE; + return; } bitmap = FreeImage_Load((FREE_IMAGE_FORMAT)fif, filename, flags); @@ -1837,27 +1911,66 @@ } /* }}} */ -/* {{{ proto freeimage_lockpage() - */ +/* {{{ proto resource freeimage_lockpage(resource bitmap, int page) + Locks a page in memory for editing. */ PHP_FUNCTION(freeimage_lockpage) { - RETURN_TRUE; + zval *z_bitmap=NULL; + FIMULTIBITMAP *bitmap; + FIBITMAP *dib; + int page; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &z_bitmap, &page) == FAILURE) { + return; + } + ZEND_FETCH_RESOURCE(bitmap, FIMULTIBITMAP *, &z_bitmap, -1, le_freeimage_name, le_freeimage); + dib = FreeImage_LockPage(bitmap, page); + if (dib) { + ZEND_REGISTER_RESOURCE(return_value, dib, le_freeimage); + } else { + RETURN_FALSE; + } } /* }}} */ -/* {{{ proto freeimage_movepage() - */ +/* {{{ proto boolean freeimage_movepage(resource bitmap, int target, int source) + Moves the source page to the position of the target page. */ PHP_FUNCTION(freeimage_movepage) { - RETURN_TRUE; + zval *z_bitmap=NULL; + FIMULTIBITMAP *bitmap; + int target, source; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rll", &z_bitmap, &target, &source) == FAILURE) { + return; + } + ZEND_FETCH_RESOURCE(bitmap, FIMULTIBITMAP *, &z_bitmap, -1, le_freeimage_name, le_freeimage); + if (FreeImage_MovePage(bitmap, target, source)) { + RETURN_TRUE; + } else { + RETURN_FALSE; + } } /* }}} */ -/* {{{ proto freeimage_openmultibitmap() - */ +/* {{{ proto freeimage_openmultibitmap(int fif, string filename, bool create_new, bool read_only[, bool keep_in_memory]) + Opens a multi-paged bitmap. */ PHP_FUNCTION(freeimage_openmultibitmap) { - RETURN_TRUE; + int fif; + char *filename; + int filename_len; + BOOL create_new, read_only, keep_in_memory=FALSE; + FIMULTIBITMAP *bitmap; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lsbb|b", &fif, &filename, &filename_len, &create_new, &read_only, &keep_in_memory) == FAILURE) { + return; + } + + bitmap = FreeImage_OpenMultiBitmap((FREE_IMAGE_FORMAT)fif, filename, create_new, read_only, keep_in_memory); + if (bitmap) { + ZEND_REGISTER_RESOURCE(return_value, bitmap, le_freeimage); + } else { + php_error(E_WARNING, "FreeImage_OpenMultiBitmap failed"); + RETURN_FALSE; + } } /* }}} */ @@ -1877,8 +1990,8 @@ FIBITMAP *dst_bitmap,*src_bitmap; int left=0, top=0, alpha=0; - if (ZEND_NUM_ARGS() != 5 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrlll", &z_dstdib, &z_srcdib, &left, &top, &alpha) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrlll", &z_dstdib, &z_srcdib, &left, &top, &alpha) == FAILURE) { + RETURN_FALSE; } ZEND_FETCH_RESOURCE(dst_bitmap, FIBITMAP *, &z_dstdib, -1, le_freeimage_name, le_freeimage); ZEND_FETCH_RESOURCE(src_bitmap, FIBITMAP *, &z_srcdib, -1, le_freeimage_name, le_freeimage); @@ -1915,7 +2028,21 @@ */ PHP_FUNCTION(freeimage_rescale) { - RETURN_TRUE; + zval *z_dib=NULL; + FIBITMAP *bitmap, *rescale; + int width=0, height=0, filter=0; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlll", &z_dib, &width, &height, &filter) == FAILURE) { + RETURN_FALSE; + } + ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); + rescale = FreeImage_Rescale(bitmap, width, height, filter); + if (rescale) { + ZEND_REGISTER_RESOURCE(return_value, rescale, le_freeimage); + } else { + php_error(E_WARNING, "FreeImage_Rescale failed"); + RETURN_FALSE; + } } /* }}} */ @@ -1927,8 +2054,8 @@ FIBITMAP *bitmap, *ratate; int angle = 0; - if (ZEND_NUM_ARGS() != 2 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rd", &z_dib, &angle) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rd", &z_dib, &angle) == FAILURE) { + return; } angle = (angle <0 || angle > 360) ? 0 : angle; @@ -1952,8 +2079,8 @@ double angle=0, x_shift=0, y_shift=0, x_origin=0, y_origin=0; BOOL mask=FALSE; - if (ZEND_NUM_ARGS() != 7 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rdddddb", &z_dib, &angle, &x_shift, &y_shift, &x_origin, &y_origin, &mask) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rdddddb", &z_dib, &angle, &x_shift, &y_shift, &x_origin, &y_origin, &mask) == FAILURE) { + return; } angle = (angle < 0 || angle > 360) ? 0 : angle; @@ -2004,7 +2131,7 @@ } /* }}} */ -/* {{{ proto freeimage_setchannel(resource dib, resource dib8, int channel) +/* {{{ proto boolean freeimage_setchannel(resource dib, resource dib8, int channel) Insert a 8-bit dib into a 24- or 32-bit image. dib8 and dib must have the same width and height. */ PHP_FUNCTION(freeimage_setchannel) { @@ -2012,8 +2139,8 @@ FIBITMAP *bitmap, *bitmap8; int channel; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrl", &z_dib, &z_dib8, &channel) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrl", &z_dib, &z_dib8, &channel) == FAILURE) { + RETURN_FALSE; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); @@ -2043,17 +2170,16 @@ int fif, ret; boolean enable; - if (ZEND_NUM_ARGS() != 2 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lb", &fif, &enable) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lb", &fif, &enable) == FAILURE) { + return; } - ret = (int)FreeImage_SetPluginEnabled(fif, enable); RETURN_LONG(ret); } /* }}} */ -/* {{{ proto freeimage_settransparencytable() - */ +/* {{{ proto void freeimage_settransparencytable(resource dib, mixd table, int count) + set the bitmap¡¯s transparency table. */ PHP_FUNCTION(freeimage_settransparencytable) { RETURN_TRUE; @@ -2069,7 +2195,7 @@ boolean enabled; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &z_dib, &enabled) == FAILURE) { - WRONG_PARAM_COUNT; + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); FreeImage_SetTransparent(bitmap, enabled); @@ -2091,8 +2217,8 @@ zval *z_dib=NULL; FIBITMAP *bitmap; - if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_dib) == FAILURE) { + return; } ZEND_FETCH_RESOURCE(bitmap, FIBITMAP *, &z_dib, -1, le_freeimage_name, le_freeimage); zend_list_delete(Z_RESVAL_P(z_dib)); @@ -2100,11 +2226,20 @@ } /* }}} */ -/* {{{ proto freeimage_unlockpage() - */ +/* {{{ proto freeimage_unlockpage(resource bitmap, resource page, bool changed) + Unlocks a previously locked page and gives it back to the multi-page engine. */ PHP_FUNCTION(freeimage_unlockpage) { - RETURN_TRUE; + zval *z_bitmap=NULL, *z_page=NULL; + FIMULTIBITMAP *bitmap; + FIBITMAP *page; + BOOL changed; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrb", &z_bitmap, &z_page, &changed) == FAILURE) { + return; + } + ZEND_FETCH_RESOURCE(bitmap, FIMULTIBITMAP *, &z_bitmap, -1, le_freeimage_name, le_freeimage); + ZEND_FETCH_RESOURCE(page, FIBITMAP *, &z_page, -1, le_freeimage_name, le_freeimage); + FreeImage_UnlockPage(bitmap, page, changed); } /* }}} */ Index: pecl/freeimage/php_freeimage.h diff -u pecl/freeimage/php_freeimage.h:1.2 pecl/freeimage/php_freeimage.h:1.3 --- pecl/freeimage/php_freeimage.h:1.2 Mon Jan 5 00:13:40 2004 +++ pecl/freeimage/php_freeimage.h Wed Jan 7 03:42:40 2004 @@ -13,11 +13,11 @@ | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: Noon <noon@ms8.url.com.tw> | - | Wenlong Wu <phpteam@vip.sina.com> | + | Wenlong Wu <wenlong@php.net> | +----------------------------------------------------------------------+ */ -/* $Id: php_freeimage.h,v 1.2 2004/01/05 05:13:40 wenlong Exp $ */ +/* $Id: php_freeimage.h,v 1.3 2004/01/07 08:42:40 wenlong Exp $ */ #ifndef PHP_FREEIMAGE_H #define PHP_FREEIMAGE_H Index: pecl/freeimage/readme diff -u pecl/freeimage/readme:1.1 pecl/freeimage/readme:1.2 --- pecl/freeimage/readme:1.1 Mon Jan 5 01:29:31 2004 +++ pecl/freeimage/readme Wed Jan 7 03:42:40 2004 @@ -58,4 +58,4 @@ ======== If there are any questions or problems, feel free to contact us: Noon <noon@ms8.url.com.tw> -Wenlong Wu <phpteam@vip.sina.com> \ No newline at end of file +Wenlong Wu <wenlong@php.net> \ No newline at end of file
« previous php.pecl.cvs (#656) next »