- use PHP streams for image load/save
- 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
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)
{