-
-
Notifications
You must be signed in to change notification settings - Fork 4
Closed
Description
Describe the bug
I get the following output with libvips 8.17.2. It seems to work fine on libvips 8.16.1...
PHP Fatal error: Uncaught Jcupitt\Vips\Exception: libvips error: jpegload: no property named `n'
linear: vector must have 1 or 4 elements
in /Users/earthiverse/Sites/media-store/vendor/jcupitt/vips/src/VipsOperation.php:311
Stack trace:
#0 /Users/earthiverse/Sites/media-store/vendor/jcupitt/vips/src/VipsOperation.php(371): Jcupitt\Vips\VipsOperation::callBase('VipsForeignSave...', Object(Jcupitt\Vips\Image), Array)
#1 /Users/earthiverse/Sites/media-store/vendor/jcupitt/vips/src/Image.php(1017): Jcupitt\Vips\VipsOperation::call('VipsForeignSave...', Object(Jcupitt\Vips\Image), Array, Array)
#2 /Users/earthiverse/Sites/media-store/vendor/intervention/image-driver-vips/src/Encoders/JpegEncoder.php(31): Jcupitt\Vips\Image->writeToBuffer('.jpg', Array)
#3 /Users/earthiverse/Sites/media-store/vendor/intervention/image/src/Image.php(287): Intervention\Image\Drivers\Vips\Encoders\JpegEncoder->encode(Object(Intervention\Image\Image))
#4 /Users/earthiverse/Sites/media-store/vendor/intervention/image/src/Encoders/FilePathEncoder.php(32): Intervention\Image\Image->encode(Object(Intervention\Image\Encoders\JpegEncoder))
#5 /Users/earthiverse/Sites/media-store/vendor/intervention/image/src/Image.php(287): Intervention\Image\Encoders\FilePathEncoder->encode(Object(Intervention\Image\Image))
#6 /Users/earthiverse/Sites/media-store/vendor/intervention/image/src/Image.php(923): Intervention\Image\Image->encode(Object(Intervention\Image\Encoders\FilePathEncoder))
#7 /Users/earthiverse/Sites/media-store/vendor/intervention/image/src/Image.php(305): Intervention\Image\Image->encodeByPath('out.jpeg')
#8 /Users/earthiverse/Sites/media-store/tests/Codeception/Support/Data/images/floorplan2/test.php(14): Intervention\Image\Image->save('out.jpeg')
#9 {main}
thrown in /Users/earthiverse/Sites/media-store/vendor/jcupitt/vips/src/VipsOperation.php on line 311
Fatal error: Uncaught Jcupitt\Vips\Exception: libvips error: jpegload: no property named `n'
linear: vector must have 1 or 4 elements
in /Users/earthiverse/Sites/media-store/vendor/jcupitt/vips/src/VipsOperation.php on line 311
Jcupitt\Vips\Exception: libvips error: jpegload: no property named `n'
linear: vector must have 1 or 4 elements
in /Users/earthiverse/Sites/media-store/vendor/jcupitt/vips/src/VipsOperation.php on line 311
Call Stack:
0.0008 397584 1. {main}() /Users/earthiverse/Sites/media-store/tests/Codeception/Support/Data/images/floorplan2/test.php:0
0.0544 3752104 2. Intervention\Image\Image->save($path = 'out.jpeg') /Users/earthiverse/Sites/media-store/tests/Codeception/Support/Data/images/floorplan2/test.php:14
0.0544 3752104 3. Intervention\Image\Image->encodeByPath($path = 'out.jpeg') /Users/earthiverse/Sites/media-store/vendor/intervention/image/src/Image.php:305
0.0556 3842624 4. Intervention\Image\Image->encode($encoder = class Intervention\Image\Encoders\FilePathEncoder { protected array $options = []; public Intervention\Image\MediaType|string|null $mediaType = *uninitialized*; public Intervention\Image\FileExtension|string|null $extension = 'jpeg'; protected ?string $path = 'out.jpeg' }) /Users/earthiverse/Sites/media-store/vendor/intervention/image/src/Image.php:923
0.0556 3842624 5. Intervention\Image\Encoders\FilePathEncoder->encode($image = class Intervention\Image\Image { private Intervention\Image\Origin $origin = class Intervention\Image\Origin { protected string $mediaType = 'image/jpeg'; protected ?string $filePath = 'base.jpeg' }; private Intervention\Image\Interfaces\DriverInterface $driver = class Intervention\Image\Drivers\Vips\Driver { protected Intervention\Image\Config $config = class Intervention\Image\Config { ... } }; private Intervention\Image\Interfaces\CoreInterface $core = class Intervention\Image\Drivers\Vips\Core { protected int $iteratorIndex = 1; protected Jcupitt\Vips\Image $vipsImage = class Jcupitt\Vips\Image { ... } }; private Intervention\Image\Interfaces\CollectionInterface $exif = class Intervention\Image\Collection { protected array $items = [...] } }) /Users/earthiverse/Sites/media-store/vendor/intervention/image/src/Image.php:287
0.0560 3862448 6. Intervention\Image\Image->encode($encoder = class Intervention\Image\Encoders\JpegEncoder { protected Intervention\Image\Interfaces\DriverInterface $driver = *uninitialized*; public int $quality = 75; public bool $progressive = FALSE; public ?bool $strip = NULL }) /Users/earthiverse/Sites/media-store/vendor/intervention/image/src/Encoders/FilePathEncoder.php:32
0.0566 4054968 7. Intervention\Image\Drivers\Vips\Encoders\JpegEncoder->encode($image = class Intervention\Image\Image { private Intervention\Image\Origin $origin = class Intervention\Image\Origin { protected string $mediaType = 'image/jpeg'; protected ?string $filePath = 'base.jpeg' }; private Intervention\Image\Interfaces\DriverInterface $driver = class Intervention\Image\Drivers\Vips\Driver { protected Intervention\Image\Config $config = class Intervention\Image\Config { ... } }; private Intervention\Image\Interfaces\CoreInterface $core = class Intervention\Image\Drivers\Vips\Core { protected int $iteratorIndex = 1; protected Jcupitt\Vips\Image $vipsImage = class Jcupitt\Vips\Image { ... } }; private Intervention\Image\Interfaces\CollectionInterface $exif = class Intervention\Image\Collection { protected array $items = [...] } }) /Users/earthiverse/Sites/media-store/vendor/intervention/image/src/Image.php:287
0.0574 4125144 8. Jcupitt\Vips\Image->writeToBuffer($suffix = '.jpg', $options = ['Q' => 75, 'interlace' => FALSE, 'optimize_coding' => TRUE, 'background' => [0 => 255, 1 => 255, 2 => 255], 'keep' => 31]) /Users/earthiverse/Sites/media-store/vendor/intervention/image-driver-vips/src/Encoders/JpegEncoder.php:31
0.0577 4139120 9. Jcupitt\Vips\VipsOperation::call($name = 'VipsForeignSaveJpegTarget', $instance = class Jcupitt\Vips\Image { private FFI\CData ${Jcupitt\Vips\GObject}pointer = class FFI\CData { }; private FFI\CData ${Jcupitt\Vips\VipsObject}pointer = class FFI\CData { }; private FFI\CData ${Jcupitt\Vips\VipsObject}gObject = class FFI\CData { }; public FFI\CData $pointer = class FFI\CData { } }, $arguments = [0 => class Jcupitt\Vips\Target { private FFI\CData ${Jcupitt\Vips\GObject}pointer = class FFI\CData { ... }; private FFI\CData ${Jcupitt\Vips\VipsObject}pointer = class FFI\CData { ... }; private FFI\CData ${Jcupitt\Vips\VipsObject}gObject = class FFI\CData { ... }; public FFI\CData $pointer = class FFI\CData { ... } }], $options = ['Q' => 75, 'interlace' => FALSE, 'optimize_coding' => TRUE, 'background' => [0 => 255, 1 => 255, 2 => 255], 'keep' => 31]) /Users/earthiverse/Sites/media-store/vendor/jcupitt/vips/src/Image.php:1017
0.0577 4139336 10. Jcupitt\Vips\VipsOperation::callBase($operation_name = 'VipsForeignSaveJpegTarget', $instance = class Jcupitt\Vips\Image { private FFI\CData ${Jcupitt\Vips\GObject}pointer = class FFI\CData { }; private FFI\CData ${Jcupitt\Vips\VipsObject}pointer = class FFI\CData { }; private FFI\CData ${Jcupitt\Vips\VipsObject}gObject = class FFI\CData { }; public FFI\CData $pointer = class FFI\CData { } }, $arguments = [0 => class Jcupitt\Vips\Target { private FFI\CData ${Jcupitt\Vips\GObject}pointer = class FFI\CData { ... }; private FFI\CData ${Jcupitt\Vips\VipsObject}pointer = class FFI\CData { ... }; private FFI\CData ${Jcupitt\Vips\VipsObject}gObject = class FFI\CData { ... }; public FFI\CData $pointer = class FFI\CData { ... } }, 1 => ['Q' => 75, 'interlace' => FALSE, 'optimize_coding' => TRUE, 'background' => [...], 'keep' => 31]]) /Users/earthiverse/Sites/media-store/vendor/jcupitt/vips/src/VipsOperation.php:371
Might be related to #80.
Fails to pad a grayscale jpeg with the error linear: vector must have 1 or 4 elements
Code Example
<?php
use Intervention\Image\Drivers\Vips\Driver;
use Intervention\Image\ImageManager;
require '../../../../../../vendor/autoload.php';
$imageManager = ImageManager::withDriver(Driver::class);
$image = $imageManager->read('base.jpeg');
$image->scaleDown(484, 311);
$image->crop(280, 180, 0, 0, 'ffffff', 'center');
$image->save('out.jpeg');
Expected behavior
Should be padded without errors (this image was produced using libvips 8.16.1)
Images
Environment:
- PHP Version: 8.4.13
- OS: MacOS
- Intervention Image Version: 3.11.4 (intervention/image-driver-vips 1.0.7)
- php-vips Version: 1.0.13
- libvips Version: 8.17.2
Metadata
Metadata
Assignees
Labels
No labels