ifthenelse allows non-uchar conditional images
This commit is contained in:
parent
2cbaf93b18
commit
5fae2763a5
@ -1,3 +1,7 @@
|
|||||||
|
12/5/10 started 7.22.2
|
||||||
|
- the conditional image of ifthenelse can be any format, a (!=0) is added if
|
||||||
|
necessary
|
||||||
|
|
||||||
12/5/10 started 7.22.1
|
12/5/10 started 7.22.1
|
||||||
- fix a problem with tiff pyramid write and >1cpu, thanks Ruven
|
- fix a problem with tiff pyramid write and >1cpu, thanks Ruven
|
||||||
- constant ops clip to target range
|
- constant ops clip to target range
|
||||||
|
@ -6,7 +6,7 @@ AC_CONFIG_MACRO_DIR(m4)
|
|||||||
# user-visible library versioning
|
# user-visible library versioning
|
||||||
m4_define([vips_major_version], [7])
|
m4_define([vips_major_version], [7])
|
||||||
m4_define([vips_minor_version], [22])
|
m4_define([vips_minor_version], [22])
|
||||||
m4_define([vips_micro_version], [1])
|
m4_define([vips_micro_version], [2])
|
||||||
m4_define([vips_version],
|
m4_define([vips_version],
|
||||||
[vips_major_version.vips_minor_version.vips_micro_version])
|
[vips_major_version.vips_minor_version.vips_micro_version])
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ PACKAGE=vips
|
|||||||
# interface changes not backwards compatible?: reset age to 0
|
# interface changes not backwards compatible?: reset age to 0
|
||||||
|
|
||||||
LIBRARY_CURRENT=29
|
LIBRARY_CURRENT=29
|
||||||
LIBRARY_REVISION=2
|
LIBRARY_REVISION=3
|
||||||
LIBRARY_AGE=14
|
LIBRARY_AGE=14
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
|
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
|
||||||
|
@ -15,6 +15,9 @@
|
|||||||
* - use im_check*()
|
* - use im_check*()
|
||||||
* - allow many-band conditional and single-band a/b
|
* - allow many-band conditional and single-band a/b
|
||||||
* - allow a/b to differ in format and bands
|
* - allow a/b to differ in format and bands
|
||||||
|
* 25/6/10
|
||||||
|
* - let the conditional image be any format by adding a (!=0) if
|
||||||
|
* necessary
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -185,7 +188,7 @@ ifthenelse( IMAGE *c, IMAGE *a, IMAGE *b, IMAGE *out )
|
|||||||
* @b: else #IMAGE
|
* @b: else #IMAGE
|
||||||
* @out: output #IMAGE
|
* @out: output #IMAGE
|
||||||
*
|
*
|
||||||
* This operation scans the condition image @c (which must be unsigned char)
|
* This operation scans the condition image @c
|
||||||
* and uses it to select pixels from either the then image @a or the else
|
* and uses it to select pixels from either the then image @a or the else
|
||||||
* image @b. Non-zero means @a, 0 means @b.
|
* image @b. Non-zero means @a, 0 means @b.
|
||||||
*
|
*
|
||||||
@ -216,6 +219,15 @@ im_ifthenelse( IMAGE *c, IMAGE *a, IMAGE *b, IMAGE *out )
|
|||||||
im__bandalike( t[0], t[1], t[2], t[3] ) )
|
im__bandalike( t[0], t[1], t[2], t[3] ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
|
||||||
|
/* If c is not uchar, do (!=0) to make a uchar image.
|
||||||
|
*/
|
||||||
|
if( c->BandFmt != IM_BANDFMT_UCHAR ) {
|
||||||
|
if( im_notequalconst( c, t[4], 0 ) )
|
||||||
|
return( -1 );
|
||||||
|
|
||||||
|
c = t[4];
|
||||||
|
}
|
||||||
|
|
||||||
if( ifthenelse( c, t[2], t[3], out ) )
|
if( ifthenelse( c, t[2], t[3], out ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user