From 3540e3ef09b8b0701e3a7365c2205f09654ed997 Mon Sep 17 00:00:00 2001 From: John Cupitt Date: Wed, 11 Apr 2012 12:48:41 +0100 Subject: [PATCH] support :level,associated in the vips7 openslide the vips7 stub for openslide now supports :level,associated mode options, eg: $ header CMU-2.svs CMU-2.svs: 19500x7615 uchar, 4 bands, rgb VipsImage (0x236a060) $ header CMU-2.svs:2 CMU-2.svs:2: 4875x1903 uchar, 4 bands, rgb VipsImage (0x244c060) $ header CMU-2.svs:,label CMU-2.svs:,label: 387x463 uchar, 4 bands, rgb VipsImage (0xa2d060) $ header CMU-2.svs:2,label CMU-2.svs:2,label: 387x463 uchar, 4 bands, rgb VipsImage (0x1b23060) --- ChangeLog | 1 + libvips/deprecated/im_openslide2vips.c | 23 +++++++++++++++++++++-- python/try4.py | 12 ++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100755 python/try4.py diff --git a/ChangeLog b/ChangeLog index 167e0449..3195c391 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,7 @@ - fix openslide read: always return png-style rgba, im_argb2rgba() becomes a NOP - cast to unsigned int now removes <0 values +- vips7 interface to openslide now supports :,level,associated options 13/3/12 started 7.28.2 - xres/yres tiffsave args were broken diff --git a/libvips/deprecated/im_openslide2vips.c b/libvips/deprecated/im_openslide2vips.c index 4a2ccf88..f4d9e120 100644 --- a/libvips/deprecated/im_openslide2vips.c +++ b/libvips/deprecated/im_openslide2vips.c @@ -2,6 +2,8 @@ * * 17/12/11 * - just a stub + * 11/4/12 + * - support :level,associated in filenames */ /* @@ -49,11 +51,28 @@ #include static int -im_openslide2vips( const char *filename, IMAGE *out ) +im_openslide2vips( const char *name, IMAGE *out ) { + char filename[FILENAME_MAX]; + char mode[FILENAME_MAX]; + char *p, *q; + char *associated; + int level; VipsImage *t; - if( vips_openslideload( filename, &t, NULL ) ) + im_filename_split( name, filename, mode ); + level = 1; + associated = NULL; + p = &mode[0]; + if( (q = im_getnextoption( &p )) ) + level = atoi( q ); + if( (q = im_getnextoption( &p )) ) + associated = q; + + if( vips_openslideload( filename, &t, + "level", level, + "associated", associated, + NULL ) ) return( -1 ); if( vips_image_write( t, out ) ) { g_object_unref( t ); diff --git a/python/try4.py b/python/try4.py new file mode 100755 index 00000000..35a20724 --- /dev/null +++ b/python/try4.py @@ -0,0 +1,12 @@ +#!/usr/bin/python + +import sys +from vips8 import vips +from gi.repository import Vips + +a = vips.Image(sys.argv[1]) +b = vips.Image(sys.argv[2]) + +c = a.join(b, Vips.Direction.HORIZONTAL, expand = True) + +c.write_to_file(sys.argv[3])