allow missing offset in matrix header
defaults to zero
This commit is contained in:
parent
d2effba8f6
commit
cbce10db81
9
TODO
9
TODO
@ -1,12 +1,7 @@
|
|||||||
- try this blur.mat
|
|
||||||
|
|
||||||
6 1 3896
|
|
||||||
20 22 24 27 30 32
|
|
||||||
|
|
||||||
ie. missing offset, though scale is there ... is not recognised
|
|
||||||
|
|
||||||
- redo conva ... make a cumulative image and sub distances in that
|
- redo conva ... make a cumulative image and sub distances in that
|
||||||
|
|
||||||
|
- add APPROX precision to convsep test
|
||||||
|
|
||||||
- add more webp tests to py suite
|
- add more webp tests to py suite
|
||||||
|
|
||||||
- try moving some more of the CLI tests to py
|
- try moving some more of the CLI tests to py
|
||||||
|
@ -30,6 +30,8 @@
|
|||||||
* 4/6/15
|
* 4/6/15
|
||||||
* - try to support DOS files under linux ... we have to look for \r\n
|
* - try to support DOS files under linux ... we have to look for \r\n
|
||||||
* linebreaks
|
* linebreaks
|
||||||
|
* 12/8/16
|
||||||
|
* - allow missing offset in matrix header
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -522,6 +524,8 @@ read_ascii_double( FILE *fp, const char whitemap[256], double *out )
|
|||||||
|
|
||||||
/* Read the header. Two numbers for width and height, and two optional
|
/* Read the header. Two numbers for width and height, and two optional
|
||||||
* numbers for scale and offset.
|
* numbers for scale and offset.
|
||||||
|
*
|
||||||
|
* We can have scale and no offset, in which case we assume offset = 0.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
vips__matrix_header( char *whitemap, FILE *fp,
|
vips__matrix_header( char *whitemap, FILE *fp,
|
||||||
@ -532,6 +536,11 @@ vips__matrix_header( char *whitemap, FILE *fp,
|
|||||||
int i;
|
int i;
|
||||||
int ch;
|
int ch;
|
||||||
|
|
||||||
|
/* Offset defaults to zero.
|
||||||
|
*/
|
||||||
|
header[2] = 1.0;
|
||||||
|
header[3] = 0.0;
|
||||||
|
|
||||||
for( i = 0; i < 4 &&
|
for( i = 0; i < 4 &&
|
||||||
(ch = read_ascii_double( fp, whitemap, &header[i] )) == 0;
|
(ch = read_ascii_double( fp, whitemap, &header[i] )) == 0;
|
||||||
i++ )
|
i++ )
|
||||||
@ -556,22 +565,17 @@ vips__matrix_header( char *whitemap, FILE *fp,
|
|||||||
"%s", _( "width / height out of range" ) );
|
"%s", _( "width / height out of range" ) );
|
||||||
return( -1 );
|
return( -1 );
|
||||||
}
|
}
|
||||||
if( i == 3 ) {
|
|
||||||
vips_error( "mask2vips", "%s", _( "bad scale / offset" ) );
|
|
||||||
return( -1 );
|
|
||||||
}
|
|
||||||
if( (ch = read_ascii_double( fp, whitemap, &d )) != '\n' ) {
|
if( (ch = read_ascii_double( fp, whitemap, &d )) != '\n' ) {
|
||||||
vips_error( "mask2vips", "%s", _( "extra chars in header" ) );
|
vips_error( "mask2vips", "%s", _( "extra chars in header" ) );
|
||||||
return( -1 );
|
return( -1 );
|
||||||
}
|
}
|
||||||
if( i > 2 &&
|
if( header[2] == 0.0 ) {
|
||||||
header[2] == 0.0 ) {
|
|
||||||
vips_error( "mask2vips", "%s", _( "zero scale" ) );
|
vips_error( "mask2vips", "%s", _( "zero scale" ) );
|
||||||
return( -1 );
|
return( -1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
*scale = i > 2 ? header[2] : 1.0;
|
*scale = header[2];
|
||||||
*offset = i > 2 ? header[3] : 0.0;
|
*offset = header[3];
|
||||||
|
|
||||||
skip_line( fp );
|
skip_line( fp );
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user