The slide file at [1] contains 4,569 chroma-subsampled J2K images, and the file at [2] contains 25,120. The below program will decode every image into memory via OpenSlide. It executes Valgrind-clean against both slides on 1.3+dfsg-4.6.

The functionality does work, and people use it. Please consider applying a more nuanced patch that fixes the real problem, rather than disabling the entire feature.

Thanks,
--Benjamin Gilbert

[1]: http://openslide.cs.cmu.edu/download/openslide-testdata/Aperio/JP2K-33003-1.svs [2]: http://openslide.cs.cmu.edu/download/openslide-testdata/Aperio/JP2K-33003-2.svs


/* gcc -O2 $(pkg-config --cflags --libs openslide) \
   -o walk-slide walk-slide.c */

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <openslide.h>

#define DIMENSION 1024

int main(int argc, char **argv)
{
    uint32_t *buf;
    int64_t x, y, w, h;
    int32_t levels, level;
    double downsample;
    openslide_t *osr;
    const char *error;

    if (argc < 2) {
        printf("specify slide file\n");
        return 1;
    }
    buf = malloc(DIMENSION * DIMENSION * sizeof(*buf));
    osr = openslide_open(argv[1]);
    if (!osr) {
        printf("failed to open\n");
        return 1;
    }
    levels = openslide_get_level_count(osr);
    openslide_get_level0_dimensions(osr, &w, &h);
    for (level = 0; level < levels; level++) {
        downsample = openslide_get_level_downsample(osr, level);
        for (y = 0; y < h; y += DIMENSION * downsample) {
            for (x = 0; x < w; x += DIMENSION * downsample) {
                printf("%d %llu %llu\n", level, x, y);
                openslide_read_region(osr, buf, x, y, level,
                        DIMENSION, DIMENSION);
                error = openslide_get_error(osr);
                if (error) {
                    printf("%s\n", error);
                    return 1;
                }
            }
        }
    }
    openslide_close(osr);
    free(buf);
    return 0;
}


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to