Not exactly on this topic, but quite related. In my case I am using C/C++ with the libvips to generate and write large images in TIFF format with pyramids but they are not correctly interpreted by qupath so this could be related with the problems exposed in this thread. Indeed:
If I use the default way (bioformats) for letting qupath read the image, it does not see the pyramid and ask for the construction of it by itself (which it does, but it takes time). Moreover, it seems to assume that the TIFF tags TIFFTAG_XRESOLUTION and TIFFTAG_YRESOLUTION are expressed in pixels/mm, despite the fact that the tag TIFFTAG_RESOLUTIONUNIT is set to cm (I know that because vips provides a program, vipsheader, to examine the tiff header). This means that pixel size is taken by QuPath as one tenth of its real value, which alters the behaviour of the cell detection algorithms.
On the contrary, if I set QuPath preferences so that Bioformats is NOT used for TIFF images, pyramid is understood; the image is loaded very fast BUT: pixel size is ignored (but this time the cell detection algorithm does not seem to be puzzled by that…)
I suspect that this is not a problem of QuPath but of the low level libraries used to read the formats, but I think it should be pointed out because if it can be at least temporarily patched at a higher level (when the image has been read).
Thanks a lot for maintaining such a complex program, it is a really hard task!