Merge branch 'master' into add-icc-fallbacks

This commit is contained in:
John Cupitt 2019-01-12 13:58:30 +00:00
commit 75ebb162f9
6 changed files with 43 additions and 17 deletions

View File

@ -32,8 +32,6 @@
#endif /*HAVE_CONFIG_H*/
#include <vips/intl.h>
#include <iostream>
#include <vips/vips8>
VIPS_NAMESPACE_START

View File

@ -563,7 +563,7 @@ VImage::new_from_file( const char *name, VOption *options )
}
VImage
VImage::new_from_buffer( void *buf, size_t len, const char *option_string,
VImage::new_from_buffer( const void *buf, size_t len, const char *option_string,
VOption *options )
{
const char *operation_name;
@ -588,6 +588,13 @@ VImage::new_from_buffer( void *buf, size_t len, const char *option_string,
return( out );
}
VImage
VImage::new_from_buffer( const std::string &buf, const char *option_string,
VOption *options )
{
return( new_from_buffer( buf.c_str(), buf.size(), option_string, options ) );
}
VImage
VImage::new_matrix( int width, int height )
{

View File

@ -31,8 +31,8 @@
#ifndef VIPS_VERROR_H
#define VIPS_VERROR_H
#include <string>
#include <iosfwd>
#include <cstring>
#include <ostream>
#include <exception>
#include <vips/vips.h>
@ -43,7 +43,7 @@ class VIPS_CPLUSPLUS_API VError : public std::exception {
std::string _what;
public:
VError( std::string what ) : _what( what ) {}
VError( const std::string &what ) : _what( what ) {}
VError() : _what( vips_error_buffer() ) {}
virtual ~VError() throw() {}

View File

@ -34,7 +34,7 @@
#include <complex>
#include <vector>
#include <string.h>
#include <cstring>
#include <vips/vips.h>
@ -327,6 +327,12 @@ public:
return( vips_image_get_yoffset( get_image() ) );
}
bool
has_alpha() const
{
return( vips_image_hasalpha( get_image() ) );
}
const char *
filename() const
{
@ -416,6 +422,12 @@ public:
return( value );
}
bool
remove( const char *name ) const
{
return( vips_image_remove( get_image(), name ) );
}
static VOption *
option()
{
@ -458,7 +470,10 @@ public:
return( VImage( image ) );
}
static VImage new_from_buffer( void *buf, size_t len,
static VImage new_from_buffer( const void *buf, size_t len,
const char *option_string, VOption *options = 0 );
static VImage new_from_buffer( const std::string &buf,
const char *option_string, VOption *options = 0 );
static VImage new_matrix( int width, int height );
@ -495,6 +510,17 @@ public:
return( new_from_image( to_vectorv( 1, pixel ) ) );
}
VImage
copy_memory() const
{
VipsImage *image;
if( !(image = vips_image_copy_memory( this->get_image() )) )
throw( VError() );
return( VImage( image ) );
}
VImage write( VImage out ) const;
void write_to_file( const char *name, VOption *options = 0 ) const;

View File

@ -34,7 +34,7 @@
#include <complex>
#include <vector>
#include <string.h>
#include <cstring>
#include <vips/vips.h>

View File

@ -194,11 +194,8 @@ G_DEFINE_TYPE( VipsCast, vips_cast, VIPS_TYPE_CONVERSION );
ITYPE * restrict p = (ITYPE *) in; \
OTYPE * restrict q = (OTYPE *) out; \
\
for( x = 0; x < sz; x++ ) { \
TEMP v = VIPS_FLOOR( p[x] ); \
\
q[x] = CAST( v ); \
} \
for( x = 0; x < sz; x++ ) \
q[x] = CAST( p[x] ); \
}
/* Cast complex types to an int type. Just take the real part.
@ -208,10 +205,8 @@ G_DEFINE_TYPE( VipsCast, vips_cast, VIPS_TYPE_CONVERSION );
OTYPE * restrict q = (OTYPE *) out; \
\
for( x = 0; x < sz; x++ ) { \
TEMP v = VIPS_FLOOR( p[0] ); \
\
q[x] = CAST( p[0] ); \
p += 2; \
q[x] = CAST( v ); \
} \
}