libvips / php-vips

php binding for libvips
MIT License
600 stars 25 forks source link

trouble with extract_area #91

Closed iowatom closed 4 years ago

iowatom commented 4 years ago

I have been generating tiled images for web based virtual microscopy using extract_area with .mrxs files (~1 gbyte) as the source. I had been using vips 8.4.5 on Ubuntu.

Command used: vips extract_area ImageName.mrxs[level=2] ImageName/tiles.dz 3744 4128 9056 7648

This is a screen shot of the image displayed using openseadragon:

vips8 4 5

I recently upgraded to vips 8.8.2 using brew on a Mac running mojave.

Here is the result rendering the same .mrxs file with vips 8.8.2:

vips8 8 2
kleisauke commented 4 years ago

Hello, I guess you installed vips with Homebrew? Homebrew ships with Pixman 0.38.4 which contains a bug that causes the tiles to be incorrectly rendered for the scaled-down versions of the high-resolution image (level > 0).

This has already been fixed upstream, see: https://gitlab.freedesktop.org/pixman/pixman/commit/8256c235d9b3854d039242356905eca854a890ba

But there's not yet a new version of Pixman available. For more information about this, see: https://github.com/libvips/libvips/issues/1401

iowatom commented 4 years ago

I recently upgraded vips on my mac using homebrew ( to version 8.9.0).

There had been a problem with tile corruption when producing deep zoom (dzi) image files with the previous installers (8.8.2) created by a bug in Pixman. This appears to now be fixed.

However now there seems be be problem with the level option in openslide images.

The command line: vips dzsave image.mrxs[level=3] out_folder/tiles.dz

fails with the error: jpegload_source: no property named `level'

If I omit the the [level=3] option, it produces a very large image that is well formed. I want to make smaller images. Any idea how I might fix this?

jcupitt commented 4 years ago

Hello @iowatom, this is a bug in 8.9.0. It's fixed in 8.9.1, so just wait for the update.

jcupitt commented 4 years ago

In the meantime, you can use:

vips openslideload image.mrxs out_folder/tiles.dz --level 3