@@ -1388,11 +1388,12 @@ PHP_FUNCTION(vips_image_copy_memory)
1388
1388
}
1389
1389
/* }}} */
1390
1390
1391
- /* {{{ proto resource vips_image_new_from_memory(array data, integer width, integer height, integer bands, string format)
1391
+ /* {{{ proto resource vips_image_new_from_memory(string data, integer width, integer height, integer bands, string format)
1392
1392
Wrap an image around a memory array. */
1393
1393
PHP_FUNCTION (vips_image_new_from_memory )
1394
1394
{
1395
- HashTable * ht ;
1395
+ char * bstr ;
1396
+ size_t bstr_len ;
1396
1397
long width ;
1397
1398
long height ;
1398
1399
long bands ;
@@ -1406,29 +1407,17 @@ PHP_FUNCTION(vips_image_new_from_memory)
1406
1407
1407
1408
VIPS_DEBUG_MSG ("vips_image_new_from_memory:\n" );
1408
1409
1409
- if (zend_parse_parameters (ZEND_NUM_ARGS (), "hlllp " ,
1410
- & ht , & width , & height , & bands , & format , & format_len ) == FAILURE ) {
1410
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "slllp " ,
1411
+ & bstr , & bstr_len , & width , & height , & bands , & format , & format_len ) == FAILURE ) {
1411
1412
RETURN_LONG (-1 );
1412
1413
}
1413
1414
1414
- if ((format_value = vips_enum_from_nick ("enum " , VIPS_TYPE_BAND_FORMAT , format )) < 0 ) {
1415
+ if ((format_value = vips_enum_from_nick ("php-vips " , VIPS_TYPE_BAND_FORMAT , format )) < 0 ) {
1415
1416
RETURN_LONG (-1 );
1416
1417
}
1417
1418
band_format = format_value ;
1418
1419
1419
- const int size = zend_hash_num_elements (ht );
1420
- int arr [size ];
1421
- int i ;
1422
-
1423
- for (i = 0 ; i < size ; i ++ ) {
1424
- zval * ele ;
1425
-
1426
- if ((ele = zend_hash_index_find (ht , i )) != NULL ) {
1427
- arr [i ] = zval_get_long (ele );
1428
- }
1429
- }
1430
-
1431
- if (!(image = vips_image_new_from_memory_copy (arr , size , width , height , bands ,
1420
+ if (!(image = vips_image_new_from_memory_copy (bstr , bstr_len , width , height , bands ,
1432
1421
band_format ))) {
1433
1422
RETURN_LONG (-1 );
1434
1423
}
@@ -1442,7 +1431,7 @@ PHP_FUNCTION(vips_image_new_from_memory)
1442
1431
}
1443
1432
/* }}} */
1444
1433
1445
- /* {{{ proto array vips_image_write_to_memory(resource image)
1434
+ /* {{{ proto string vips_image_write_to_memory(resource image)
1446
1435
Write an image to a memory array. */
1447
1436
PHP_FUNCTION (vips_image_write_to_memory )
1448
1437
{
@@ -1466,12 +1455,9 @@ PHP_FUNCTION(vips_image_write_to_memory)
1466
1455
RETURN_LONG (-1 );
1467
1456
}
1468
1457
1469
- array_init ( return_value );
1458
+ RETVAL_STRINGL (( char * ) arr , arr_len );
1470
1459
1471
- int i ;
1472
- for (i = 0 ; i < arr_len ; i ++ ) {
1473
- add_next_index_long (return_value , arr [i ]);
1474
- }
1460
+ g_free (arr );
1475
1461
}
1476
1462
/* }}} */
1477
1463
0 commit comments