diff options
| author | pp <pp@455248ca-bdda-0310-9134-f4ebb693071a> | 2004-12-22 18:06:14 +0000 |
|---|---|---|
| committer | pp <pp@455248ca-bdda-0310-9134-f4ebb693071a> | 2004-12-22 18:06:14 +0000 |
| commit | 3d7a4ddb5b4215cd74ba1bfdc0af8c694e37d16d (patch) | |
| tree | 7065369421b50997cc32d5ea466ffae33e8c9cff /php_imlib.c | |
| parent | 60dba433a0af58f1b9816f21152e3a1d610336db (diff) | |
- use PHP streams for image load/save
git-svn-id: https://siedziba.pl:790/svn/repos/php-imlib/trunk@91 455248ca-bdda-0310-9134-f4ebb693071a
Diffstat (limited to 'php_imlib.c')
| -rw-r--r-- | php_imlib.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/php_imlib.c b/php_imlib.c index 14a7c46..5422631 100644 --- a/php_imlib.c +++ b/php_imlib.c @@ -2077,6 +2077,8 @@ PHP_FUNCTION(imlib_load_image) int argc; Imlib_Image im; Imlib_Load_Error im_err; + FILE* f; + char* filename; argc = ZEND_NUM_ARGS(); if (argc < 1 || argc > 2 || zend_get_parameters_ex(argc, &img, &err) == FAILURE) { @@ -2089,7 +2091,13 @@ PHP_FUNCTION(imlib_load_image) ZVAL_LONG(*err,0); } - im = imlib_load_image_with_error_return(Z_STRVAL_PP(img),&im_err); + f = php_stream_open_wrapper_as_file(Z_STRVAL_PP(img), "rb", IGNORE_PATH | ENFORCE_SAFE_MODE | REPORT_ERRORS, &filename); + if (f == NULL) RETURN_FALSE; + + im = imlib_load_image_with_error_return(filename, &im_err); + + fclose(f); + efree(filename); if ((im_err) || (!im)) { @@ -2235,6 +2243,8 @@ PHP_FUNCTION(imlib_save_image) Imlib_Image im; Imlib_Load_Error im_err; int argc, q; + char* filename; + FILE* f; argc = ZEND_NUM_ARGS(); if (argc < 2 || argc > 4 || zend_get_parameters_ex(argc, &img, &name, &err, &quality) == FAILURE) { @@ -2258,7 +2268,13 @@ PHP_FUNCTION(imlib_save_image) imlib_image_attach_data_value("quality",NULL,q,NULL); } - imlib_save_image_with_error_return(Z_STRVAL_PP(name),&im_err); + f = php_stream_open_wrapper_as_file(Z_STRVAL_PP(name), "wb", IGNORE_PATH | ENFORCE_SAFE_MODE | REPORT_ERRORS, &filename); + if (f == NULL) RETURN_FALSE; + + imlib_save_image_with_error_return(filename, &im_err); + + fclose(f); + efree(filename); if (im_err) { |
