Benjamin Gilbert bgilbert at cs.cmu.edu
Sat Jul 7 18:05:12 EDT 2012

On 07/07/2012 12:14 PM, Agelos Pappas wrote:
> As you can see the one of the two image tags, the thumbnail, has the
> same dimensions as the collection. The code will fail if the above
> condition is not met in any of the two tags.

Nice, that's a better solution.

> I'm adding the lowest resolution of the thumbnail as an associated
> image. I thought it would be quicker to not use the largest one.

In the example slide, our choices are:
1616 x 4668
404 x 1167
101 x 291

The other slide formats have associated images which are 1000-2000 
pixels on their longest side.  I don't like the idea of OpenSlide eating 
data (by returning a downsampled associated image), but returning a 30 
MB buffer is a bit excessive.  Adam, any thoughts?  Associated images 
are demand-loaded these days, so there's no runtime overhead if the app 
doesn't request them.

> There is a big issue with libxml2 however, which I found out the hard
> way. There's a function called *xmlCleanupParser*. This function should
> be called once we are done using the library, so that it cleans up
> memory used by the library itself.
> Does this mean that whenever you call the library's functions, new
> memory is allocated? Or does initialization takes place only once?

Initialization takes place only once.  I agree with Adam, it's not safe 
for us to call xmlCleanupParser at all.  Also, xmlInitParser is not 
thread-safe, so we need to call it ourselves from _openslide_init rather 
than letting libxml2 call it implicitly.

> Let me know if you want me to send you the leica vendor file I've written.

When you're ready, send a GitHub pull request on openslide/openslide and 
I'll review it.

--Benjamin Gilbert

More information about the openslide-users mailing list