224 lines
7.5 KiB
C
224 lines
7.5 KiB
C
/* Private decls shared by all foreign.
|
|
*/
|
|
|
|
/*
|
|
|
|
Copyright (C) 1991-2005 The National Gallery
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with this library; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
02110-1301 USA
|
|
|
|
*/
|
|
|
|
/*
|
|
|
|
These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
|
|
|
|
*/
|
|
|
|
#ifndef VIPS_PFOREIGN_H
|
|
#define VIPS_PFOREIGN_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /*__cplusplus*/
|
|
|
|
/* Slow and horrid version if there's no recent glib.
|
|
*/
|
|
#if !GLIB_CHECK_VERSION( 2, 48, 0 )
|
|
#define g_uint_checked_mul( dest, a, b ) ( \
|
|
((guint64) a * b) > UINT_MAX ? \
|
|
(*dest = UINT_MAX, FALSE) : \
|
|
(*dest = a * b, TRUE) \
|
|
)
|
|
#endif /*!GLIB_CHECK_VERSION( 2, 48, 0 )*/
|
|
|
|
/* We've seen real images with 28 chunks, so set 50.
|
|
*/
|
|
#define MAX_PNG_TEXT_CHUNKS 50
|
|
|
|
void vips__tiff_init( void );
|
|
|
|
int vips__tiff_write_target( VipsImage *in, VipsTarget *target,
|
|
VipsForeignTiffCompression compression, int Q,
|
|
VipsForeignTiffPredictor predictor,
|
|
const char *profile,
|
|
gboolean tile, int tile_width, int tile_height,
|
|
gboolean pyramid,
|
|
int bitdepth,
|
|
gboolean miniswhite,
|
|
VipsForeignTiffResunit resunit, double xres, double yres,
|
|
gboolean bigtiff,
|
|
gboolean rgbjpeg,
|
|
gboolean properties,
|
|
gboolean strip,
|
|
VipsRegionShrink region_shrink,
|
|
int level,
|
|
gboolean lossless,
|
|
VipsForeignDzDepth depth,
|
|
gboolean subifd,
|
|
gboolean premultiply,
|
|
int page_height );
|
|
|
|
gboolean vips__istiff_source( VipsSource *source );
|
|
gboolean vips__istifftiled_source( VipsSource *source );
|
|
int vips__tiff_read_header_source( VipsSource *source, VipsImage *out,
|
|
int page, int n, gboolean autorotate, int subifd, VipsFailOn fail_on );
|
|
int vips__tiff_read_source( VipsSource *source, VipsImage *out,
|
|
int page, int n, gboolean autorotate, int subifd, VipsFailOn fail_on );
|
|
|
|
extern const char *vips__foreign_tiff_suffs[];
|
|
|
|
int vips__isanalyze( const char *filename );
|
|
int vips__analyze_read_header( const char *filename, VipsImage *out );
|
|
int vips__analyze_read( const char *filename, VipsImage *out );
|
|
|
|
extern const char *vips__foreign_csv_suffs[];
|
|
|
|
int vips__matrix_read_header( const char *filename,
|
|
int *width, int *height, double *scale, double *offset );
|
|
int vips__matrix_ismatrix( const char *filename );
|
|
VipsImage *vips__matrix_read_file( FILE *fp );
|
|
VipsImage *vips__matrix_read( const char *filename );
|
|
int vips__matrix_write( VipsImage *in, const char *filename );
|
|
int vips__matrix_write_file( VipsImage *in, FILE *fp );
|
|
|
|
extern const char *vips__foreign_matrix_suffs[];
|
|
|
|
int vips__openexr_isexr( const char *filename );
|
|
gboolean vips__openexr_istiled( const char *filename );
|
|
int vips__openexr_read_header( const char *filename, VipsImage *out );
|
|
int vips__openexr_read( const char *filename, VipsImage *out );
|
|
|
|
extern const char *vips__fits_suffs[];
|
|
|
|
int vips__fits_isfits( const char *filename );
|
|
int vips__fits_read_header( const char *filename, VipsImage *out );
|
|
int vips__fits_read( const char *filename, VipsImage *out );
|
|
|
|
int vips__fits_write( VipsImage *in, const char *filename );
|
|
|
|
int vips__magick_read( const char *filename,
|
|
VipsImage *out, const char *density, int page, int n );
|
|
int vips__magick_read_header( const char *filename,
|
|
VipsImage *out, const char *density, int page, int n );
|
|
|
|
int vips__magick_read_buffer( const void *buf, const size_t len,
|
|
VipsImage *out, const char *density, int page, int n );
|
|
int vips__magick_read_buffer_header( const void *buf, const size_t len,
|
|
VipsImage *out, const char *density, int page, int n );
|
|
|
|
extern const char *vips__mat_suffs[];
|
|
|
|
int vips__mat_load( const char *filename, VipsImage *out );
|
|
int vips__mat_header( const char *filename, VipsImage *out );
|
|
int vips__mat_ismat( const char *filename );
|
|
|
|
extern const char *vips__ppm_suffs[];
|
|
extern const char *vips__save_pbm_suffs[];
|
|
extern const char *vips__save_pgm_suffs[];
|
|
extern const char *vips__save_ppm_suffs[];
|
|
extern const char *vips__save_pfm_suffs[];
|
|
extern const char *vips__save_pnm_suffs[];
|
|
|
|
int vips__ppm_save_target( VipsImage *in, VipsTarget *target,
|
|
gboolean ascii, gboolean squash );
|
|
int vips__rad_israd( VipsSource *source );
|
|
int vips__rad_header( VipsSource *source, VipsImage *out );
|
|
int vips__rad_load( VipsSource *source, VipsImage *out );
|
|
|
|
int vips__rad_save( VipsImage *in, VipsTarget *target );
|
|
|
|
extern const char *vips__rad_suffs[];
|
|
|
|
extern const char *vips__jpeg_suffs[];
|
|
|
|
int vips__jpeg_write_target( VipsImage *in, VipsTarget *target,
|
|
int Q, const char *profile,
|
|
gboolean optimize_coding, gboolean progressive, gboolean strip,
|
|
gboolean trellis_quant, gboolean overshoot_deringing,
|
|
gboolean optimize_scans, int quant_table,
|
|
VipsForeignSubsample subsample_mode, int restart_interval );
|
|
|
|
int vips__jpeg_read_source( VipsSource *source, VipsImage *out,
|
|
gboolean header_only, int shrink, VipsFailOn fail_on,
|
|
gboolean autorotate, gboolean unlimited );
|
|
int vips__isjpeg_source( VipsSource *source );
|
|
|
|
int vips__png_ispng_source( VipsSource *source );
|
|
int vips__png_header_source( VipsSource *source, VipsImage *out,
|
|
gboolean unlimited );
|
|
int vips__png_read_source( VipsSource *source, VipsImage *out,
|
|
VipsFailOn fail_on, gboolean unlimited );
|
|
gboolean vips__png_isinterlaced_source( VipsSource *source );
|
|
extern const char *vips__png_suffs[];
|
|
|
|
int vips__png_write_target( VipsImage *in, VipsTarget *target,
|
|
int compress, int interlace, const char *profile,
|
|
VipsForeignPngFilter filter, gboolean strip,
|
|
gboolean palette, int Q, double dither,
|
|
int bitdepth, int effort );
|
|
|
|
/* Map WEBP metadata names to vips names.
|
|
*/
|
|
typedef struct _VipsWebPNames {
|
|
const char *vips;
|
|
const char *webp;
|
|
int flags;
|
|
} VipsWebPNames;
|
|
|
|
extern const VipsWebPNames vips__webp_names[];
|
|
extern const int vips__n_webp_names;
|
|
extern const char *vips__webp_suffs[];
|
|
|
|
int vips__iswebp_source( VipsSource *source );
|
|
|
|
int vips__webp_read_header_source( VipsSource *source, VipsImage *out,
|
|
int page, int n, double scale );
|
|
int vips__webp_read_source( VipsSource *source, VipsImage *out,
|
|
int page, int n, double scale );
|
|
|
|
extern const char *vips_foreign_nifti_suffs[];
|
|
|
|
VipsBandFormat vips__foreign_nifti_datatype2BandFmt( int datatype );
|
|
int vips__foreign_nifti_BandFmt2datatype( VipsBandFormat fmt );
|
|
|
|
typedef void *(*VipsNiftiMapFn)( const char *name, GValue *value, glong offset,
|
|
void *a, void *b );
|
|
void *vips__foreign_nifti_map( VipsNiftiMapFn fn, void *a, void *b );
|
|
|
|
extern const char *vips__heic_suffs[];
|
|
extern const char *vips__avif_suffs[];
|
|
extern const char *vips__heif_suffs[];
|
|
int vips__heif_chroma( int bits_per_pixel, gboolean has_alpha );
|
|
|
|
extern const char *vips__jp2k_suffs[];
|
|
int vips__foreign_load_jp2k_decompress( VipsImage *out,
|
|
int width, int height, gboolean ycc_to_rgb,
|
|
void *from, size_t from_length,
|
|
void *to, size_t to_length );
|
|
int vips__foreign_load_jp2k_compress( VipsRegion *region,
|
|
VipsRect *tile, VipsTarget *target,
|
|
int tile_width, int tile_height,
|
|
gboolean save_as_ycc, gboolean subsample, gboolean lossless, int Q );
|
|
|
|
extern const char *vips__jxl_suffs[];
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /*__cplusplus*/
|
|
|
|
#endif /*VIPS_PFOREIGN_H*/
|