Merge remote-tracking branch 'origin/gobject-introspection' into goi-merge
Conflicts: TODO libvips/arithmetic/im_recomb.c libvips/arithmetic/im_stats.c libvips/deprecated/im_measure.c libvips/include/vips/header.h libvips/include/vips/image.h libvips/include/vips/object.h libvips/iofuncs/header.c libvips/iofuncs/image.c libvips/iofuncs/object.c
This commit is contained in:
commit
0983b50905
2
.gitignore
vendored
2
.gitignore
vendored
@ -4,6 +4,8 @@ Makefile.in
|
|||||||
TAGS
|
TAGS
|
||||||
tags
|
tags
|
||||||
*.o
|
*.o
|
||||||
|
Vips-8.0.gir
|
||||||
|
Vips-8.0.typelib
|
||||||
.*.swp
|
.*.swp
|
||||||
*.lo
|
*.lo
|
||||||
*.bak
|
*.bak
|
||||||
|
@ -56,4 +56,6 @@ uninstall-hook:
|
|||||||
-chmod -R u+w ${DESTDIR}$(datadir)/doc/vips
|
-chmod -R u+w ${DESTDIR}$(datadir)/doc/vips
|
||||||
-rm -rf ${DESTDIR}$(datadir)/doc/vips
|
-rm -rf ${DESTDIR}$(datadir)/doc/vips
|
||||||
|
|
||||||
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
|
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-introspection
|
||||||
|
31
TODO
31
TODO
@ -1,7 +1,32 @@
|
|||||||
- python/* is too old, keep for reference, but we need to use the
|
- automake conditionals are breaking introspection
|
||||||
introspection stuff to get current gobject bindings
|
|
||||||
|
|
||||||
look at that brancg again
|
we need to build all of them, but use ifdefs to knock chunks out
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- test goi merge
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- looks like we need to have all includes in all .h files, and to scan them
|
||||||
|
all explicitly
|
||||||
|
|
||||||
|
at the moment Vips-8.0.gir just has the stuff directly in vips.h
|
||||||
|
|
||||||
|
... is this correct? many includes are working finw without this
|
||||||
|
|
||||||
|
- currently stuck on:
|
||||||
|
|
||||||
|
<unknown>:: Fatal: Vips: Unknown namespace for identifier 'vips_save_string'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- look at libpeas for plugin support
|
||||||
|
|
||||||
|
http://live.gnome.org/Libpeas
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ cp $ACDIR/iconv.m4 m4
|
|||||||
cp $ACDIR/isc-posix.m4 m4
|
cp $ACDIR/isc-posix.m4 m4
|
||||||
cp $ACDIR/lcmessage.m4 m4
|
cp $ACDIR/lcmessage.m4 m4
|
||||||
cp $ACDIR/progtest.m4 m4
|
cp $ACDIR/progtest.m4 m4
|
||||||
|
cp $ACDIR/introspection.m4 m4
|
||||||
|
|
||||||
gtkdocize --copy --docdir doc/reference --flavour no-tmpl || exit 1
|
gtkdocize --copy --docdir doc/reference --flavour no-tmpl || exit 1
|
||||||
|
|
||||||
|
108
configure.in
108
configure.in
@ -1,5 +1,14 @@
|
|||||||
# Process this file with autoconf to produce a configure script.
|
# Process this file with autoconf to produce a configure script.
|
||||||
AC_INIT(libvips/include/vips/colour.h)
|
|
||||||
|
# also update the version number in the m4 macros below
|
||||||
|
|
||||||
|
AC_INIT(vips, 7.25.0, vipsip@jiscmail.ac.uk)
|
||||||
|
# required for gobject-introspection
|
||||||
|
AC_PREREQ(2.62)
|
||||||
|
|
||||||
|
# gobject-introspection recommends this
|
||||||
|
AM_INIT_AUTOMAKE([-Wno-portability])
|
||||||
|
|
||||||
AM_CONFIG_HEADER(config.h)
|
AM_CONFIG_HEADER(config.h)
|
||||||
AC_CONFIG_MACRO_DIR(m4)
|
AC_CONFIG_MACRO_DIR(m4)
|
||||||
|
|
||||||
@ -10,14 +19,48 @@ m4_define([vips_micro_version], [0])
|
|||||||
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])
|
||||||
|
|
||||||
VIPS_MAJOR_VERSION=vips_major_version
|
VIPS_MAJOR_VERSION=vips_major_version()
|
||||||
VIPS_MINOR_VERSION=vips_minor_version
|
VIPS_MINOR_VERSION=vips_minor_version()
|
||||||
VIPS_MICRO_VERSION=vips_micro_version
|
VIPS_MICRO_VERSION=vips_micro_version()
|
||||||
VIPS_VERSION=vips_version()
|
VIPS_VERSION=vips_version()
|
||||||
VIPS_VERSION_STRING=$VIPS_VERSION-`date`
|
VIPS_VERSION_STRING=$VIPS_VERSION-`date`
|
||||||
|
|
||||||
VERSION=$VIPS_VERSION
|
# init introspection support
|
||||||
PACKAGE=vips
|
GOBJECT_INTROSPECTION_CHECK([0.6.7])
|
||||||
|
|
||||||
|
# gir needs a list of source files to scan for introspection
|
||||||
|
# build with a glob and a list of files to exclude from scanning
|
||||||
|
# see also IGNORE_HFILES in doc/reference/Makefile.am
|
||||||
|
# the only header we include is the main vips.h one, it'll pull in everything
|
||||||
|
# else in the public API
|
||||||
|
introspection_sources=`cd libvips ; find . -name "*.c"`
|
||||||
|
filter_list="deprecated im_video_v4l1.c"
|
||||||
|
|
||||||
|
introspection_sources2=
|
||||||
|
for name in $introspection_sources; do
|
||||||
|
found=0
|
||||||
|
for filter in $filter_list; do
|
||||||
|
# FIXME .. argh a bash-ism :( not sure of a nice, portable way to do
|
||||||
|
# regexp matching
|
||||||
|
if [[[ $name == *${filter}* ]]]; then
|
||||||
|
found=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $found -eq 0 ]]; then
|
||||||
|
introspection_sources2="$introspection_sources2 $name"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
vips_introspection_sources="$introspection_sources2"
|
||||||
|
|
||||||
|
# add headers that form the public vips8 API .. don't do a find and exclude,
|
||||||
|
# we end up excluding almost everything argh
|
||||||
|
headers="vips.h object.h image.h error.h foreign.h interpolate.h header.h operation.h enumtypes.h arithmetic.h conversion.h"
|
||||||
|
for name in $headers; do
|
||||||
|
vips_introspection_sources="$vips_introspection_sources include/vips/$name"
|
||||||
|
done
|
||||||
|
|
||||||
|
AC_SUBST(vips_introspection_sources)
|
||||||
|
|
||||||
# libtool library versioning ... not user-visible (except as part of the
|
# libtool library versioning ... not user-visible (except as part of the
|
||||||
# library file name) and does not correspond to major/minor/micro above
|
# library file name) and does not correspond to major/minor/micro above
|
||||||
@ -32,8 +75,6 @@ LIBRARY_CURRENT=30
|
|||||||
LIBRARY_REVISION=5
|
LIBRARY_REVISION=5
|
||||||
LIBRARY_AGE=15
|
LIBRARY_AGE=15
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
|
|
||||||
|
|
||||||
# patched into include/vips/version.h
|
# patched into include/vips/version.h
|
||||||
AC_SUBST(VIPS_VERSION)
|
AC_SUBST(VIPS_VERSION)
|
||||||
AC_SUBST(VIPS_VERSION_STRING)
|
AC_SUBST(VIPS_VERSION_STRING)
|
||||||
@ -388,12 +429,6 @@ if test x"$with_magick" != "xno"; then
|
|||||||
LIBS=$save_LIBS
|
LIBS=$save_LIBS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test x"$with_magick" = x"yes"; then
|
|
||||||
AM_CONDITIONAL(HAVE_MAGICK, true)
|
|
||||||
else
|
|
||||||
AM_CONDITIONAL(HAVE_MAGICK, false)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# orc
|
# orc
|
||||||
AC_ARG_WITH([orc],
|
AC_ARG_WITH([orc],
|
||||||
AS_HELP_STRING([--without-orc], [build without orc (default: test)]))
|
AS_HELP_STRING([--without-orc], [build without orc (default: test)]))
|
||||||
@ -444,17 +479,11 @@ if test x"$with_OpenEXR" != "xno"; then
|
|||||||
])
|
])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test x"$with_OpenEXR" = x"yes"; then
|
|
||||||
AM_CONDITIONAL(HAVE_OPENEXR, true)
|
|
||||||
else
|
|
||||||
AM_CONDITIONAL(HAVE_OPENEXR, false)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# OpenSlide
|
# OpenSlide
|
||||||
AC_ARG_WITH([openslide],
|
AC_ARG_WITH([openslide],
|
||||||
AS_HELP_STRING([--without-openslide], [build without OpenSlide (default: test)]))
|
AS_HELP_STRING([--without-openslide], [build without OpenSlide (default: test)]))
|
||||||
|
|
||||||
if test x"$with_openslide" != "xno"; then
|
if test x"$with_openslide" != x"no"; then
|
||||||
PKG_CHECK_MODULES(OPENSLIDE, openslide >= 3.2.0,
|
PKG_CHECK_MODULES(OPENSLIDE, openslide >= 3.2.0,
|
||||||
[AC_DEFINE(HAVE_OPENSLIDE,1,[define if you have OpenSlide >= 3.2.0 installed.])
|
[AC_DEFINE(HAVE_OPENSLIDE,1,[define if you have OpenSlide >= 3.2.0 installed.])
|
||||||
with_openslide=yes
|
with_openslide=yes
|
||||||
@ -464,12 +493,6 @@ if test x"$with_openslide" != "xno"; then
|
|||||||
])
|
])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test x"$with_openslide" = x"yes"; then
|
|
||||||
AM_CONDITIONAL(HAVE_OPENSLIDE, true)
|
|
||||||
else
|
|
||||||
AM_CONDITIONAL(HAVE_OPENSLIDE, false)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# matio
|
# matio
|
||||||
AC_ARG_WITH([matio],
|
AC_ARG_WITH([matio],
|
||||||
AS_HELP_STRING([--without-matio], [build without matio (default: test)]))
|
AS_HELP_STRING([--without-matio], [build without matio (default: test)]))
|
||||||
@ -484,12 +507,6 @@ if test x"$with_matio" != "xno"; then
|
|||||||
])
|
])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test x"$with_openslide" = x"yes"; then
|
|
||||||
AM_CONDITIONAL(HAVE_MATIO, true)
|
|
||||||
else
|
|
||||||
AM_CONDITIONAL(HAVE_MATIO, false)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# cfitsio
|
# cfitsio
|
||||||
AC_ARG_WITH([cfitsio],
|
AC_ARG_WITH([cfitsio],
|
||||||
AS_HELP_STRING([--without-cfitsio], [build without cfitsio (default: test)]))
|
AS_HELP_STRING([--without-cfitsio], [build without cfitsio (default: test)]))
|
||||||
@ -504,12 +521,6 @@ if test x"$with_cfitsio" != "xno"; then
|
|||||||
])
|
])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test x"$with_cfitsio" = x"yes"; then
|
|
||||||
AM_CONDITIONAL(HAVE_CFITSIO, true)
|
|
||||||
else
|
|
||||||
AM_CONDITIONAL(HAVE_CFITSIO, false)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# pangoft2
|
# pangoft2
|
||||||
AC_ARG_WITH([pangoft2],
|
AC_ARG_WITH([pangoft2],
|
||||||
AS_HELP_STRING([--without-pangoft2],
|
AS_HELP_STRING([--without-pangoft2],
|
||||||
@ -532,12 +543,6 @@ FIND_TIFF(
|
|||||||
with_tiff=no
|
with_tiff=no
|
||||||
])
|
])
|
||||||
|
|
||||||
if test x"$with_tiff" = x"yes"; then
|
|
||||||
AM_CONDITIONAL(HAVE_TIFF, true)
|
|
||||||
else
|
|
||||||
AM_CONDITIONAL(HAVE_TIFF, false)
|
|
||||||
fi
|
|
||||||
|
|
||||||
FIND_ZIP(
|
FIND_ZIP(
|
||||||
[with_zip=yes],
|
[with_zip=yes],
|
||||||
[AC_MSG_WARN([libz not found; disabling ZIP support])
|
[AC_MSG_WARN([libz not found; disabling ZIP support])
|
||||||
@ -560,24 +565,12 @@ if test x"$with_png" != "xno"; then
|
|||||||
])
|
])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test x"$with_png" = x"yes"; then
|
|
||||||
AM_CONDITIONAL(HAVE_PNG, true)
|
|
||||||
else
|
|
||||||
AM_CONDITIONAL(HAVE_PNG, false)
|
|
||||||
fi
|
|
||||||
|
|
||||||
FIND_JPEG(
|
FIND_JPEG(
|
||||||
[with_jpeg=yes],
|
[with_jpeg=yes],
|
||||||
[AC_MSG_WARN([libjpeg not found; disabling JPEG support])
|
[AC_MSG_WARN([libjpeg not found; disabling JPEG support])
|
||||||
with_jpeg=no
|
with_jpeg=no
|
||||||
])
|
])
|
||||||
|
|
||||||
if test x"$with_jpeg" = x"yes"; then
|
|
||||||
AM_CONDITIONAL(HAVE_JPEG, true)
|
|
||||||
else
|
|
||||||
AM_CONDITIONAL(HAVE_JPEG, false)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# libexif
|
# libexif
|
||||||
AC_ARG_WITH([libexif],
|
AC_ARG_WITH([libexif],
|
||||||
AS_HELP_STRING([--without-libexif], [build without libexif (default: test)]))
|
AS_HELP_STRING([--without-libexif], [build without libexif (default: test)]))
|
||||||
@ -736,6 +729,7 @@ enable debug: $enable_debug
|
|||||||
build C++ components: $enable_cxx
|
build C++ components: $enable_cxx
|
||||||
evaluate with threads: $enable_threads
|
evaluate with threads: $enable_threads
|
||||||
build docs with gtkdoc $enable_gtk_doc
|
build docs with gtkdoc $enable_gtk_doc
|
||||||
|
gobject introspection $found_introspection
|
||||||
|
|
||||||
* optional packages and modules
|
* optional packages and modules
|
||||||
use fftw3 for FFT: $with_fftw3
|
use fftw3 for FFT: $with_fftw3
|
||||||
|
@ -72,3 +72,41 @@ libvips_la_LDFLAGS = \
|
|||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
$(C_DIST_DIR)
|
$(C_DIST_DIR)
|
||||||
|
|
||||||
|
CLEANFILES =
|
||||||
|
|
||||||
|
-include $(INTROSPECTION_MAKEFILE)
|
||||||
|
INTROSPECTION_GIRS =
|
||||||
|
INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir)
|
||||||
|
INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
|
||||||
|
|
||||||
|
if HAVE_INTROSPECTION
|
||||||
|
# we can't get the _SOURCES lists from the subdirs directly, we get passed it
|
||||||
|
# by configure instead
|
||||||
|
introspection_sources = @vips_introspection_sources@
|
||||||
|
|
||||||
|
# we make the vips8 API
|
||||||
|
Vips-8.0.gir: libvips.la
|
||||||
|
Vips_8_0_gir_INCLUDES = GObject-2.0
|
||||||
|
Vips_8_0_gir_CFLAGS = $(INCLUDES) -I${top_srcdir}/libvips/include
|
||||||
|
Vips_8_0_gir_LIBS = libvips.la
|
||||||
|
Vips_8_0_gir_FILES = $(introspection_sources)
|
||||||
|
Vips_8_0_gir_SCANNERFLAGS = \
|
||||||
|
--warn-all \
|
||||||
|
--verbose \
|
||||||
|
--namespace=Vips \
|
||||||
|
--identifier-prefix=Vips \
|
||||||
|
--identifier-prefix=vips \
|
||||||
|
--symbol-prefix=vips \
|
||||||
|
--symbol-prefix=im \
|
||||||
|
--symbol-prefix=im_
|
||||||
|
INTROSPECTION_GIRS += Vips-8.0.gir
|
||||||
|
|
||||||
|
girdir = $(datadir)/gir-1.0
|
||||||
|
gir_DATA = $(INTROSPECTION_GIRS)
|
||||||
|
|
||||||
|
typelibdir = $(libdir)/girepository-1.0
|
||||||
|
typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
|
||||||
|
|
||||||
|
CLEANFILES += $(gir_DATA) $(typelib_DATA)
|
||||||
|
endif
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /*__cplusplus*/
|
#endif /*__cplusplus*/
|
||||||
|
|
||||||
|
#include <vips/vips.h>
|
||||||
#include <vips/vector.h>
|
#include <vips/vector.h>
|
||||||
|
|
||||||
#define VIPS_TYPE_ARITHMETIC (vips_arithmetic_get_type())
|
#define VIPS_TYPE_ARITHMETIC (vips_arithmetic_get_type())
|
||||||
|
@ -30,6 +30,10 @@
|
|||||||
#ifndef VIPS_BINARY_H
|
#ifndef VIPS_BINARY_H
|
||||||
#define VIPS_BINARY_H
|
#define VIPS_BINARY_H
|
||||||
|
|
||||||
|
#include <vips/vips.h>
|
||||||
|
|
||||||
|
#include "arithmetic.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /*__cplusplus*/
|
#endif /*__cplusplus*/
|
||||||
|
@ -722,9 +722,8 @@ im__dmsprint( im_object obj )
|
|||||||
|
|
||||||
/* Print statistics band stats eg: 2 bands:b 0,1
|
/* Print statistics band stats eg: 2 bands:b 0,1
|
||||||
*/
|
*/
|
||||||
printf( "\
|
printf( "band minimum maximum sum "
|
||||||
band minimum maximum sum sum^2 mean deviation\
|
"sum^2 mean deviation\n" );
|
||||||
\n" );
|
|
||||||
for( j = 0; j < mask->ysize; j++ ) {
|
for( j = 0; j < mask->ysize; j++ ) {
|
||||||
row = mask->coeff + j * mask->xsize;
|
row = mask->coeff + j * mask->xsize;
|
||||||
if( j == 0 )
|
if( j == 0 )
|
||||||
|
@ -241,7 +241,7 @@ format_compare( VipsFormatClass *a, VipsFormatClass *b )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vips_format_map:
|
* vips_format_map: (skip)
|
||||||
* @fn: function to apply to each #VipsFormatClass
|
* @fn: function to apply to each #VipsFormatClass
|
||||||
* @a: user data
|
* @a: user data
|
||||||
* @b: user data
|
* @b: user data
|
||||||
|
@ -20,117 +20,39 @@ libforeign_la_SOURCES = \
|
|||||||
analyzeload.c \
|
analyzeload.c \
|
||||||
analyze2vips.c \
|
analyze2vips.c \
|
||||||
analyze2vips.h \
|
analyze2vips.h \
|
||||||
foreign.c
|
foreign.c \
|
||||||
|
matlab.h \
|
||||||
|
matlab.c \
|
||||||
|
matload.c
|
||||||
|
magick.h \
|
||||||
|
magick2vips.c \
|
||||||
|
magickload.c
|
||||||
|
pngload.c \
|
||||||
|
pngsave.c \
|
||||||
|
vipspng.h \
|
||||||
|
vipspng.c
|
||||||
|
openexr2vips.h \
|
||||||
|
openexr2vips.c \
|
||||||
|
openexrload.c
|
||||||
|
fits.h \
|
||||||
|
fits.c \
|
||||||
|
fitsload.c \
|
||||||
|
fitssave.c
|
||||||
|
tiff.h \
|
||||||
|
vips2tiff.c \
|
||||||
|
tiff2vips.c \
|
||||||
|
tiffload.c \
|
||||||
|
tiffsave.c
|
||||||
|
openslide2vips.h \
|
||||||
|
openslide2vips.c \
|
||||||
|
openslideload.c
|
||||||
|
vips2jpeg.c \
|
||||||
|
jpeg2vips.c \
|
||||||
|
jpeg.h \
|
||||||
|
jpegload.c \
|
||||||
|
jpegsave.c
|
||||||
|
|
||||||
EXTRA_DIST =
|
EXTRA_DIST =
|
||||||
|
|
||||||
if HAVE_MATIO
|
|
||||||
libforeign_la_SOURCES += \
|
|
||||||
matlab.h \
|
|
||||||
matlab.c \
|
|
||||||
matload.c
|
|
||||||
else
|
|
||||||
EXTRA_DIST += \
|
|
||||||
matlab.h \
|
|
||||||
matlab.c \
|
|
||||||
matload.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_MAGICK
|
|
||||||
libforeign_la_SOURCES += \
|
|
||||||
magick.h \
|
|
||||||
magick2vips.c \
|
|
||||||
magickload.c
|
|
||||||
else
|
|
||||||
EXTRA_DIST += \
|
|
||||||
magick.h \
|
|
||||||
magick2vips.c \
|
|
||||||
magickload.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_PNG
|
|
||||||
libforeign_la_SOURCES += \
|
|
||||||
pngload.c \
|
|
||||||
pngsave.c \
|
|
||||||
vipspng.h \
|
|
||||||
vipspng.c
|
|
||||||
else
|
|
||||||
EXTRA_DIST += \
|
|
||||||
pngload.c \
|
|
||||||
pngsave.c \
|
|
||||||
vipspng.h \
|
|
||||||
vipspng.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_OPENEXR
|
|
||||||
libforeign_la_SOURCES += \
|
|
||||||
openexr2vips.h \
|
|
||||||
openexr2vips.c \
|
|
||||||
openexrload.c
|
|
||||||
else
|
|
||||||
EXTRA_DIST += \
|
|
||||||
openexr2vips.h \
|
|
||||||
openexr2vips.c \
|
|
||||||
openexrload.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_CFITSIO
|
|
||||||
libforeign_la_SOURCES += \
|
|
||||||
fits.h \
|
|
||||||
fits.c \
|
|
||||||
fitsload.c \
|
|
||||||
fitssave.c
|
|
||||||
else
|
|
||||||
EXTRA_DIST += \
|
|
||||||
fits.h \
|
|
||||||
fits.c \
|
|
||||||
fitsload.c \
|
|
||||||
fitssave.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_TIFF
|
|
||||||
libforeign_la_SOURCES += \
|
|
||||||
tiff.h \
|
|
||||||
vips2tiff.c \
|
|
||||||
tiff2vips.c \
|
|
||||||
tiffload.c \
|
|
||||||
tiffsave.c
|
|
||||||
else
|
|
||||||
EXTRA_DIST += \
|
|
||||||
tiff.h \
|
|
||||||
vips2tiff.c \
|
|
||||||
tiff2vips.c \
|
|
||||||
tiffload.c \
|
|
||||||
tiffsave.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_OPENSLIDE
|
|
||||||
libforeign_la_SOURCES += \
|
|
||||||
openslide2vips.h \
|
|
||||||
openslide2vips.c \
|
|
||||||
openslideload.c
|
|
||||||
else
|
|
||||||
EXTRA_DIST += \
|
|
||||||
openslide2vips.h \
|
|
||||||
openslide2vips.c \
|
|
||||||
openslideload.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_JPEG
|
|
||||||
libforeign_la_SOURCES += \
|
|
||||||
vips2jpeg.c \
|
|
||||||
jpeg2vips.c \
|
|
||||||
jpeg.h \
|
|
||||||
jpegload.c \
|
|
||||||
jpegsave.c
|
|
||||||
else
|
|
||||||
EXTRA_DIST += \
|
|
||||||
vips2jpeg.c \
|
|
||||||
jpeg2vips.c \
|
|
||||||
jpeg.h \
|
|
||||||
jpegload.c \
|
|
||||||
jpegsave.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
INCLUDES = -I${top_srcdir}/libvips/include @VIPS_CFLAGS@ @VIPS_INCLUDES@
|
INCLUDES = -I${top_srcdir}/libvips/include @VIPS_CFLAGS@ @VIPS_INCLUDES@
|
||||||
|
|
||||||
|
@ -58,6 +58,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_CFITSIO
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -736,3 +738,5 @@ vips__fits_write( VipsImage *in, const char *filename )
|
|||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_CFITSIO*/
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_CFITSIO
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -122,3 +124,5 @@ static void
|
|||||||
vips_foreign_load_fits_init( VipsForeignLoadFits *fits )
|
vips_foreign_load_fits_init( VipsForeignLoadFits *fits )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_CFITSIO*/
|
||||||
|
@ -40,6 +40,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_CFITSIO
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -134,3 +136,5 @@ static void
|
|||||||
vips_foreign_save_fits_init( VipsForeignSaveFits *fits )
|
vips_foreign_save_fits_init( VipsForeignSaveFits *fits )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_CFITSIO*/
|
||||||
|
@ -79,6 +79,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_JPEG
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -1010,3 +1012,4 @@ vips__isjpeg( const char *filename )
|
|||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_JPEG*/
|
||||||
|
@ -42,6 +42,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_JPEG
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -301,3 +303,4 @@ vips_foreign_load_jpeg_buffer_init( VipsForeignLoadJpegBuffer *buffer )
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_JPEG*/
|
||||||
|
@ -40,6 +40,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_JPEG
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -323,3 +325,5 @@ static void
|
|||||||
vips_foreign_save_jpeg_mime_init( VipsForeignSaveJpegMime *mime )
|
vips_foreign_save_jpeg_mime_init( VipsForeignSaveJpegMime *mime )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_JPEG*/
|
||||||
|
@ -75,6 +75,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_MAGICK
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -706,3 +708,5 @@ vips__magick_read_header( const char *filename, VipsImage *im )
|
|||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_MAGICK*/
|
||||||
|
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_MAGICK
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -153,3 +155,5 @@ static void
|
|||||||
vips_foreign_load_magick_init( VipsForeignLoadMagick *magick )
|
vips_foreign_load_magick_init( VipsForeignLoadMagick *magick )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_MAGICK*/
|
||||||
|
@ -56,6 +56,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_MATIO
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
@ -304,3 +306,5 @@ vips__mat_ismat( const char *filename )
|
|||||||
}
|
}
|
||||||
|
|
||||||
const char *vips__mat_suffs[] = { ".mat", NULL };
|
const char *vips__mat_suffs[] = { ".mat", NULL };
|
||||||
|
|
||||||
|
#endif /*HAVE_MATIO*/
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_MATIO
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -134,3 +136,5 @@ static void
|
|||||||
vips_foreign_load_mat_init( VipsForeignLoadMat *mat )
|
vips_foreign_load_mat_init( VipsForeignLoadMat *mat )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_MATIO*/
|
||||||
|
@ -67,6 +67,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_OPENEXR
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -404,3 +406,5 @@ vips__openexr_read( const char *filename, VipsImage *out )
|
|||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_OPENEXR*/
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_OPENEXR
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -143,3 +145,5 @@ static void
|
|||||||
vips_foreign_load_openexr_init( VipsForeignLoadOpenexr *openexr )
|
vips_foreign_load_openexr_init( VipsForeignLoadOpenexr *openexr )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_OPENEXR*/
|
||||||
|
@ -55,6 +55,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_OPENSLIDE
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -351,3 +353,4 @@ vips__openslide_read_associated( const char *filename, VipsImage *out,
|
|||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_OPENSLIDE*/
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_OPENSLIDE
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -201,3 +203,5 @@ static void
|
|||||||
vips_foreign_load_openslide_init( VipsForeignLoadOpenslide *openslide )
|
vips_foreign_load_openslide_init( VipsForeignLoadOpenslide *openslide )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_OPENSLIDE*/
|
||||||
|
@ -47,6 +47,8 @@
|
|||||||
#include <vips/buf.h>
|
#include <vips/buf.h>
|
||||||
#include <vips/internal.h>
|
#include <vips/internal.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_PNG
|
||||||
|
|
||||||
#include "vipspng.h"
|
#include "vipspng.h"
|
||||||
|
|
||||||
typedef struct _VipsForeignLoadPng {
|
typedef struct _VipsForeignLoadPng {
|
||||||
@ -134,3 +136,5 @@ static void
|
|||||||
vips_foreign_load_png_init( VipsForeignLoadPng *png )
|
vips_foreign_load_png_init( VipsForeignLoadPng *png )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_PNG*/
|
||||||
|
@ -40,6 +40,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_PNG
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -234,3 +236,5 @@ static void
|
|||||||
vips_foreign_save_png_buffer_init( VipsForeignSavePngBuffer *buffer )
|
vips_foreign_save_png_buffer_init( VipsForeignSavePngBuffer *buffer )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_PNG*/
|
||||||
|
@ -162,6 +162,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_TIFF
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -1554,3 +1556,5 @@ vips__istiff( const char *filename )
|
|||||||
|
|
||||||
return( FALSE );
|
return( FALSE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_TIFF*/
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_TIFF
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -153,3 +155,5 @@ static void
|
|||||||
vips_foreign_load_tiff_init( VipsForeignLoadTiff *tiff )
|
vips_foreign_load_tiff_init( VipsForeignLoadTiff *tiff )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_TIFF*/
|
||||||
|
@ -40,6 +40,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_TIFF
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -276,3 +278,5 @@ vips_foreign_save_tiff_init( VipsForeignSaveTiff *tiff )
|
|||||||
tiff->xres = 1.0;
|
tiff->xres = 1.0;
|
||||||
tiff->yres = 1.0;
|
tiff->yres = 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_TIFF*/
|
||||||
|
@ -85,6 +85,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_JPEG
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -1112,3 +1114,5 @@ vips__jpeg_write_buffer( VipsImage *in,
|
|||||||
}
|
}
|
||||||
|
|
||||||
const char *vips__jpeg_suffs[] = { ".jpg", ".jpeg", ".jpe", NULL };
|
const char *vips__jpeg_suffs[] = { ".jpg", ".jpeg", ".jpe", NULL };
|
||||||
|
|
||||||
|
#endif /*HAVE_JPEG*/
|
||||||
|
@ -163,6 +163,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_TIFF
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
@ -1538,3 +1540,4 @@ vips__tiff_write( VipsImage *in, const char *filename,
|
|||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_TIFF*/
|
||||||
|
@ -70,6 +70,8 @@
|
|||||||
#endif /*HAVE_CONFIG_H*/
|
#endif /*HAVE_CONFIG_H*/
|
||||||
#include <vips/intl.h>
|
#include <vips/intl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_PNG
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
@ -686,3 +688,4 @@ vips__png_write_buf( VipsImage *in,
|
|||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /*HAVE_PNG*/
|
||||||
|
@ -34,6 +34,8 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /*__cplusplus*/
|
#endif /*__cplusplus*/
|
||||||
|
|
||||||
|
#include <vips/vips.h>
|
||||||
|
|
||||||
/* A string in the process of being written to ... multiple calls to
|
/* A string in the process of being written to ... multiple calls to
|
||||||
* vips_buf_append add to it, on overflow append "..." and block further writes.
|
* vips_buf_append add to it, on overflow append "..." and block further writes.
|
||||||
*/
|
*/
|
||||||
|
@ -37,6 +37,8 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /*__cplusplus*/
|
#endif /*__cplusplus*/
|
||||||
|
|
||||||
|
#include <vips/vips.h>
|
||||||
|
|
||||||
int im_greyc_mask( VipsImage *in, VipsImage *out, VipsImage *mask,
|
int im_greyc_mask( VipsImage *in, VipsImage *out, VipsImage *mask,
|
||||||
int iterations, float amplitude, float sharpness, float anisotropy,
|
int iterations, float amplitude, float sharpness, float anisotropy,
|
||||||
float alpha, float sigma, float dl, float da, float gauss_prec,
|
float alpha, float sigma, float dl, float da, float gauss_prec,
|
||||||
|
@ -182,8 +182,6 @@ int im_lab_morph( VipsImage *in, VipsImage *out,
|
|||||||
double L_offset, double L_scale,
|
double L_offset, double L_scale,
|
||||||
double a_scale, double b_scale );
|
double a_scale, double b_scale );
|
||||||
|
|
||||||
void im_col_make_tables_UCS( void );
|
|
||||||
|
|
||||||
/* Render intents for icc wrappers.
|
/* Render intents for icc wrappers.
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -37,6 +37,8 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /*__cplusplus*/
|
#endif /*__cplusplus*/
|
||||||
|
|
||||||
|
#include <vips/vips.h>
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
VIPS_MASK_IDEAL_HIGHPASS = 0,
|
VIPS_MASK_IDEAL_HIGHPASS = 0,
|
||||||
VIPS_MASK_IDEAL_LOWPASS = 1,
|
VIPS_MASK_IDEAL_LOWPASS = 1,
|
||||||
|
@ -99,7 +99,7 @@ int vips_image_get_xoffset( const VipsImage *image );
|
|||||||
int vips_image_get_yoffset( const VipsImage *image );
|
int vips_image_get_yoffset( const VipsImage *image );
|
||||||
const char *vips_image_get_filename( const VipsImage *image );
|
const char *vips_image_get_filename( const VipsImage *image );
|
||||||
const char *vips_image_get_mode( const VipsImage *image );
|
const char *vips_image_get_mode( const VipsImage *image );
|
||||||
void *vips_image_get_data( VipsImage *image );;
|
void *vips_image_get_data( VipsImage *image );
|
||||||
|
|
||||||
void vips_image_init_fields( VipsImage *image,
|
void vips_image_init_fields( VipsImage *image,
|
||||||
int xsize, int ysize, int bands,
|
int xsize, int ysize, int bands,
|
||||||
@ -119,14 +119,11 @@ GType vips_image_get_typeof( VipsImage *image, const char *field );
|
|||||||
gboolean vips_image_remove( VipsImage *image, const char *field );
|
gboolean vips_image_remove( VipsImage *image, const char *field );
|
||||||
typedef void *(*VipsImageMapFn)( VipsImage *image,
|
typedef void *(*VipsImageMapFn)( VipsImage *image,
|
||||||
const char *field, GValue *value, void *a );
|
const char *field, GValue *value, void *a );
|
||||||
void *vips_image_map( VipsImage *im, VipsImageMapFn fn, void *a );
|
void *vips_image_map( VipsImage *image, VipsImageMapFn fn, void *a );
|
||||||
|
|
||||||
void vips_image_set_area( VipsImage *image,
|
void vips_image_set_area( VipsImage *image,
|
||||||
const char *field, VipsCallbackFn free_fn, void *data );
|
const char *field, VipsCallbackFn free_fn, void *data );
|
||||||
int vips_image_get_area( VipsImage *image, const char *field, void **data );
|
int vips_image_get_area( VipsImage *image, const char *field, void **data );
|
||||||
void vips_image_set_string( VipsImage *image,
|
|
||||||
const char *field, const char *str );
|
|
||||||
int vips_image_get_string( VipsImage *image, const char *field, char **str );
|
|
||||||
void vips_image_set_blob( VipsImage *image, const char *field,
|
void vips_image_set_blob( VipsImage *image, const char *field,
|
||||||
VipsCallbackFn free_fn, void *data, size_t length );
|
VipsCallbackFn free_fn, void *data, size_t length );
|
||||||
int vips_image_get_blob( VipsImage *image, const char *field,
|
int vips_image_get_blob( VipsImage *image, const char *field,
|
||||||
|
@ -61,7 +61,7 @@ typedef struct _VipsInterpolate {
|
|||||||
* interpolate the value at position (x, y) in "in".
|
* interpolate the value at position (x, y) in "in".
|
||||||
*/
|
*/
|
||||||
typedef void (*VipsInterpolateMethod)( VipsInterpolate *interpolate,
|
typedef void (*VipsInterpolateMethod)( VipsInterpolate *interpolate,
|
||||||
PEL *out, VipsRegion *in, double x, double y );
|
void *out, VipsRegion *in, double x, double y );
|
||||||
|
|
||||||
typedef struct _VipsInterpolateClass {
|
typedef struct _VipsInterpolateClass {
|
||||||
VipsObjectClass parent_class;
|
VipsObjectClass parent_class;
|
||||||
@ -88,7 +88,7 @@ typedef struct _VipsInterpolateClass {
|
|||||||
|
|
||||||
GType vips_interpolate_get_type( void );
|
GType vips_interpolate_get_type( void );
|
||||||
void vips_interpolate( VipsInterpolate *interpolate,
|
void vips_interpolate( VipsInterpolate *interpolate,
|
||||||
PEL *out, VipsRegion *in, double x, double y );
|
void *out, VipsRegion *in, double x, double y );
|
||||||
VipsInterpolateMethod vips_interpolate_get_method( VipsInterpolate *interpolate );
|
VipsInterpolateMethod vips_interpolate_get_method( VipsInterpolate *interpolate );
|
||||||
int vips_interpolate_get_window_size( VipsInterpolate *interpolate );
|
int vips_interpolate_get_window_size( VipsInterpolate *interpolate );
|
||||||
int vips_interpolate_get_window_offset( VipsInterpolate *interpolate );
|
int vips_interpolate_get_window_offset( VipsInterpolate *interpolate );
|
||||||
|
@ -37,6 +37,8 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /*__cplusplus*/
|
#endif /*__cplusplus*/
|
||||||
|
|
||||||
|
#include <vips/vips.h>
|
||||||
|
|
||||||
int im_lrmerge( VipsImage *ref, VipsImage *sec, VipsImage *out,
|
int im_lrmerge( VipsImage *ref, VipsImage *sec, VipsImage *out,
|
||||||
int dx, int dy, int mwidth );
|
int dx, int dy, int mwidth );
|
||||||
int im_tbmerge( VipsImage *ref, VipsImage *sec, VipsImage *out,
|
int im_tbmerge( VipsImage *ref, VipsImage *sec, VipsImage *out,
|
||||||
|
@ -34,6 +34,8 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /*__cplusplus*/
|
#endif /*__cplusplus*/
|
||||||
|
|
||||||
|
#include <vips/vips.h>
|
||||||
|
|
||||||
#define VIPS_TYPE_OPERATION (vips_operation_get_type())
|
#define VIPS_TYPE_OPERATION (vips_operation_get_type())
|
||||||
#define VIPS_OPERATION( obj ) \
|
#define VIPS_OPERATION( obj ) \
|
||||||
(G_TYPE_CHECK_INSTANCE_CAST( (obj), \
|
(G_TYPE_CHECK_INSTANCE_CAST( (obj), \
|
||||||
|
@ -90,7 +90,7 @@ typedef struct {
|
|||||||
* update operation and we'd need to _remove() and _insert() on every list
|
* update operation and we'd need to _remove() and _insert() on every list
|
||||||
* operation.
|
* operation.
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct _VipsBufferCacheList {
|
||||||
GSList *buffers; /* GSList of VipsBuffer* */
|
GSList *buffers; /* GSList of VipsBuffer* */
|
||||||
GThread *thread; /* Just for sanity checking */
|
GThread *thread; /* Just for sanity checking */
|
||||||
struct _VipsImage *im;
|
struct _VipsImage *im;
|
||||||
@ -99,7 +99,7 @@ typedef struct {
|
|||||||
|
|
||||||
/* What we track for each pixel buffer.
|
/* What we track for each pixel buffer.
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct _VipsBuffer {
|
||||||
int ref_count; /* # of regions referencing us */
|
int ref_count; /* # of regions referencing us */
|
||||||
struct _VipsImage *im; /* VipsImage we are attached to */
|
struct _VipsImage *im; /* VipsImage we are attached to */
|
||||||
|
|
||||||
@ -124,7 +124,7 @@ void vips_buffer_print( VipsBuffer *buffer );
|
|||||||
|
|
||||||
/* Region types.
|
/* Region types.
|
||||||
*/
|
*/
|
||||||
typedef enum region_type {
|
typedef enum _RegionType {
|
||||||
VIPS_REGION_NONE,
|
VIPS_REGION_NONE,
|
||||||
VIPS_REGION_BUFFER, /* A VipsBuffer */
|
VIPS_REGION_BUFFER, /* A VipsBuffer */
|
||||||
VIPS_REGION_OTHER_REGION, /* Memory on another region */
|
VIPS_REGION_OTHER_REGION, /* Memory on another region */
|
||||||
@ -160,6 +160,12 @@ int vips_region_fill( struct _VipsRegion *reg,
|
|||||||
int vips__image_wio_output( struct _VipsImage *image );
|
int vips__image_wio_output( struct _VipsImage *image );
|
||||||
int vips__image_pio_output( struct _VipsImage *image );
|
int vips__image_pio_output( struct _VipsImage *image );
|
||||||
|
|
||||||
|
VipsArgumentInstance *vips__argument_get_instance(
|
||||||
|
VipsArgumentClass *argument_class,
|
||||||
|
VipsObject *object);
|
||||||
|
VipsArgument *vips__argument_table_lookup( VipsArgumentTable *table,
|
||||||
|
GParamSpec *pspec);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /*__cplusplus*/
|
#endif /*__cplusplus*/
|
||||||
|
@ -99,7 +99,7 @@ typedef struct _VipsRegionClass {
|
|||||||
|
|
||||||
GType vips_region_get_type( void );
|
GType vips_region_get_type( void );
|
||||||
|
|
||||||
VipsRegion *vips_region_new( VipsImage *im );
|
VipsRegion *vips_region_new( VipsImage *image );
|
||||||
|
|
||||||
int vips_region_buffer( VipsRegion *reg, VipsRect *r );
|
int vips_region_buffer( VipsRegion *reg, VipsRect *r );
|
||||||
int vips_region_image( VipsRegion *reg, VipsRect *r );
|
int vips_region_image( VipsRegion *reg, VipsRect *r );
|
||||||
|
@ -40,6 +40,9 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /*__cplusplus*/
|
#endif /*__cplusplus*/
|
||||||
|
|
||||||
|
#include <vips/vips.h>
|
||||||
|
#include <vips/thread.h>
|
||||||
|
|
||||||
/* Implement our own semaphores.
|
/* Implement our own semaphores.
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -1100,7 +1100,7 @@ vips_check_hist( const char *domain, VipsImage *im )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vips_check_imask:
|
* vips_check_imask: (skip)
|
||||||
* @domain: the originating domain for the error message
|
* @domain: the originating domain for the error message
|
||||||
* @mask: mask to check
|
* @mask: mask to check
|
||||||
*
|
*
|
||||||
@ -1128,7 +1128,7 @@ vips_check_imask( const char *domain, INTMASK *mask )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vips_check_dmask:
|
* vips_check_dmask: (skip)
|
||||||
* @domain: the originating domain for the error message
|
* @domain: the originating domain for the error message
|
||||||
* @mask: mask to check
|
* @mask: mask to check
|
||||||
*
|
*
|
||||||
@ -1156,7 +1156,7 @@ vips_check_dmask( const char *domain, DOUBLEMASK *mask )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vips_check_dmask_1d:
|
* vips_check_dmask_1d: (skip)
|
||||||
* @domain: the originating domain for the error message
|
* @domain: the originating domain for the error message
|
||||||
* @mask: mask to check
|
* @mask: mask to check
|
||||||
*
|
*
|
||||||
|
@ -410,7 +410,7 @@ vips_image_get_mode( const VipsImage *image )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vips_image_get_data:
|
* vips_image_get_data: (skip)
|
||||||
* @image: image to get data for
|
* @image: image to get data for
|
||||||
*
|
*
|
||||||
* Return a pointer to the image's pixel data, if possible. This can involve
|
* Return a pointer to the image's pixel data, if possible. This can involve
|
||||||
@ -436,9 +436,9 @@ vips_image_get_data( VipsImage *image )
|
|||||||
* @xsize: image width
|
* @xsize: image width
|
||||||
* @ysize: image height
|
* @ysize: image height
|
||||||
* @bands: image bands
|
* @bands: image bands
|
||||||
* @bandfmt: band format
|
* @format: band format
|
||||||
* @coding: image coding
|
* @coding: image coding
|
||||||
* @type: image type
|
* @interpretation: image type
|
||||||
* @xres: horizontal resolution, pixels per millimetre
|
* @xres: horizontal resolution, pixels per millimetre
|
||||||
* @yres: vertical resolution, pixels per millimetre
|
* @yres: vertical resolution, pixels per millimetre
|
||||||
*
|
*
|
||||||
@ -861,7 +861,7 @@ vips_image_map_fn( VipsMeta *meta, VipsImageMapFn fn, void *a )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vips_image_map:
|
* vips_image_map: (skip)
|
||||||
* @image: image to map over
|
* @image: image to map over
|
||||||
* @fn: function to call for each header field
|
* @fn: function to call for each header field
|
||||||
* @a: user data for function
|
* @a: user data for function
|
||||||
@ -1017,7 +1017,7 @@ vips_image_set_blob( VipsImage *image, const char *field,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vips_image_get_blob:
|
* vips_image_get_blob: (skip)
|
||||||
* @image: image to get the metadata from
|
* @image: image to get the metadata from
|
||||||
* @field: metadata name
|
* @field: metadata name
|
||||||
* @data: pointer to area of memory
|
* @data: pointer to area of memory
|
||||||
@ -1352,7 +1352,7 @@ vips_image_history_printf( VipsImage *image, const char *fmt, ... )
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* vips_image_history_args:
|
* vips_image_history_args:
|
||||||
* @out: image to attach history line to
|
* @image: image to attach history line to
|
||||||
* @name: program name
|
* @name: program name
|
||||||
* @argc: number of program arguments
|
* @argc: number of program arguments
|
||||||
* @argv: program arguments
|
* @argv: program arguments
|
||||||
|
@ -402,7 +402,7 @@ static GOptionEntry option_entries[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vips_get_option_group:
|
* vips_get_option_group: (skip)
|
||||||
*
|
*
|
||||||
* vips_get_option_group() returns a GOptionGroup containing various VIPS
|
* vips_get_option_group() returns a GOptionGroup containing various VIPS
|
||||||
* command-line options. It can be used with GOption to help
|
* command-line options. It can be used with GOption to help
|
||||||
|
@ -303,7 +303,18 @@ vips_argument_table_destroy( VipsArgumentTable *table )
|
|||||||
g_hash_table_destroy( table );
|
g_hash_table_destroy( table );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Loop over the vips_arguments to an object.
|
/**
|
||||||
|
* vips_argument_map: (skip)
|
||||||
|
* @object: object whose args should be enumerated
|
||||||
|
* @fn: call this function for every argument
|
||||||
|
* @a: client data
|
||||||
|
* @b: client data
|
||||||
|
*
|
||||||
|
* Loop over the vips_arguments to an object. Stop when @fn returns non-%NULL
|
||||||
|
* and return that value.
|
||||||
|
*
|
||||||
|
* Returns: %NULL if @fn returns %NULL for all arguments, otherwise the first
|
||||||
|
* non-%NULL value from @fn.
|
||||||
*/
|
*/
|
||||||
void *
|
void *
|
||||||
vips_argument_map( VipsObject *object,
|
vips_argument_map( VipsObject *object,
|
||||||
@ -1535,6 +1546,18 @@ vips_object_find_required( VipsObject *object )
|
|||||||
vips_argument_is_required, NULL, NULL ) );
|
vips_argument_is_required, NULL, NULL ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vips_object_new: (skip)
|
||||||
|
* @type: object to create
|
||||||
|
* @set: set arguments with this
|
||||||
|
* @a: client data
|
||||||
|
* @b: client data
|
||||||
|
*
|
||||||
|
* g_object_new() the object, set any arguments with @set, call
|
||||||
|
* vips_object_build() and return the complete object.
|
||||||
|
*
|
||||||
|
* Returns: the new object
|
||||||
|
*/
|
||||||
VipsObject *
|
VipsObject *
|
||||||
vips_object_new( GType type, VipsObjectSetArguments set, void *a, void *b )
|
vips_object_new( GType type, VipsObjectSetArguments set, void *a, void *b )
|
||||||
{
|
{
|
||||||
@ -1717,7 +1740,12 @@ vips_object_to_string_optional( VipsObject *object,
|
|||||||
return( NULL );
|
return( NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The inverse of vips_object_new_from_string(): turn an object into eg.
|
/**
|
||||||
|
* vips_object_to_string: (skip)
|
||||||
|
* @object: object to stringify
|
||||||
|
* @buf: write string here
|
||||||
|
*
|
||||||
|
* The inverse of vips_object_new_from_string(): turn an object into eg.
|
||||||
* "VipsInterpolateSnohalo1(blur=.333333)".
|
* "VipsInterpolateSnohalo1(blur=.333333)".
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
@ -1757,6 +1785,18 @@ vips_object_map_sub( VipsObject *key, VipsObject *value,
|
|||||||
args->result = args->fn( key, args->a, args->b );
|
args->result = args->fn( key, args->a, args->b );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vips_object_map: (skip)
|
||||||
|
* @fn: function to call for all objects
|
||||||
|
* @a: client data
|
||||||
|
* @b: client data
|
||||||
|
*
|
||||||
|
* Call a function for all alive objects.
|
||||||
|
* Stop when @fn returns non-%NULL and return that value.
|
||||||
|
*
|
||||||
|
* Returns: %NULL if @fn returns %NULL for all arguments, otherwise the first
|
||||||
|
* non-%NULL value from @fn.
|
||||||
|
*/
|
||||||
void *
|
void *
|
||||||
vips_object_map( VipsSListMap2Fn fn, void *a, void *b )
|
vips_object_map( VipsSListMap2Fn fn, void *a, void *b )
|
||||||
{
|
{
|
||||||
@ -1780,7 +1820,18 @@ vips_object_map( VipsSListMap2Fn fn, void *a, void *b )
|
|||||||
return( args.result );
|
return( args.result );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Map over all a type's children.
|
/**
|
||||||
|
* vips_type_map: (skip)
|
||||||
|
* @base: base type
|
||||||
|
* @fn: call this function for every type
|
||||||
|
* @a: client data
|
||||||
|
* @b: client data
|
||||||
|
*
|
||||||
|
* Map over a type's children. Stop when @fn returns non-%NULL
|
||||||
|
* and return that value.
|
||||||
|
*
|
||||||
|
* Returns: %NULL if @fn returns %NULL for all arguments, otherwise the first
|
||||||
|
* non-%NULL value from @fn.
|
||||||
*/
|
*/
|
||||||
void *
|
void *
|
||||||
vips_type_map( GType base, VipsTypeMap2Fn fn, void *a, void *b )
|
vips_type_map( GType base, VipsTypeMap2Fn fn, void *a, void *b )
|
||||||
@ -1799,7 +1850,17 @@ vips_type_map( GType base, VipsTypeMap2Fn fn, void *a, void *b )
|
|||||||
return( result );
|
return( result );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Loop over all the subtypes of a base type.
|
/**
|
||||||
|
* vips_type_map_all: (skip)
|
||||||
|
* @base: base type
|
||||||
|
* @fn: call this function for every type
|
||||||
|
* @a: client data
|
||||||
|
*
|
||||||
|
* Map over a type's children, direct and indirect. Stop when @fn returns
|
||||||
|
* non-%NULL and return that value.
|
||||||
|
*
|
||||||
|
* Returns: %NULL if @fn returns %NULL for all arguments, otherwise the first
|
||||||
|
* non-%NULL value from @fn.
|
||||||
*/
|
*/
|
||||||
void *
|
void *
|
||||||
vips_type_map_all( GType base, VipsTypeMapFn fn, void *a )
|
vips_type_map_all( GType base, VipsTypeMapFn fn, void *a )
|
||||||
@ -1866,10 +1927,15 @@ test_name( VipsObjectClass *class, const char *nickname )
|
|||||||
return( NULL );
|
return( NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Find a class ... search below base, return the first match on a nickname or
|
/**
|
||||||
* a name. If basename is NULL, search all of VipsObject.
|
* vips_class_find: (skip)
|
||||||
|
* @basename: name of base class
|
||||||
|
* @nickname: search for a class with this nickname
|
||||||
*
|
*
|
||||||
* If not found, return NULL without setting an error message.
|
* Search below basename, return the first class whose name or nickname
|
||||||
|
* matches.
|
||||||
|
*
|
||||||
|
* Returns: the found class.
|
||||||
*/
|
*/
|
||||||
VipsObjectClass *
|
VipsObjectClass *
|
||||||
vips_class_find( const char *basename, const char *nickname )
|
vips_class_find( const char *basename, const char *nickname )
|
||||||
|
@ -37,6 +37,9 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /*__cplusplus*/
|
#endif /*__cplusplus*/
|
||||||
|
|
||||||
|
#include <vips/vips.h>
|
||||||
|
#include <vips/thread.h>
|
||||||
|
|
||||||
/* Base for sink.c / sinkdisc.c / sinkmemory.c
|
/* Base for sink.c / sinkdisc.c / sinkmemory.c
|
||||||
*/
|
*/
|
||||||
typedef struct _SinkBase {
|
typedef struct _SinkBase {
|
||||||
|
@ -105,7 +105,7 @@ G_DEFINE_TYPE( VipsInterpolateBicubic, vips_interpolate_bicubic,
|
|||||||
*/
|
*/
|
||||||
template <typename T, int min_value, int max_value>
|
template <typename T, int min_value, int max_value>
|
||||||
static void inline
|
static void inline
|
||||||
bicubic_int_tab( PEL *pout, const PEL *pin,
|
bicubic_int_tab( void *pout, const PEL *pin,
|
||||||
const int bands, const int lskip,
|
const int bands, const int lskip,
|
||||||
const int *cx, const int *cy )
|
const int *cx, const int *cy )
|
||||||
{
|
{
|
||||||
@ -173,7 +173,7 @@ bicubic_int_tab( PEL *pout, const PEL *pin,
|
|||||||
*/
|
*/
|
||||||
template <typename T>
|
template <typename T>
|
||||||
static void inline
|
static void inline
|
||||||
bicubic_float_tab( PEL *pout, const PEL *pin,
|
bicubic_float_tab( void *pout, const PEL *pin,
|
||||||
const int bands, const int lskip,
|
const int bands, const int lskip,
|
||||||
const double *cx, const double *cy )
|
const double *cx, const double *cy )
|
||||||
{
|
{
|
||||||
@ -236,7 +236,7 @@ bicubic_float_tab( PEL *pout, const PEL *pin,
|
|||||||
*/
|
*/
|
||||||
template <typename T>
|
template <typename T>
|
||||||
static void inline
|
static void inline
|
||||||
bicubic_notab( PEL *pout, const PEL *pin,
|
bicubic_notab( void *pout, const PEL *pin,
|
||||||
const int bands, const int lskip,
|
const int bands, const int lskip,
|
||||||
double x, double y )
|
double x, double y )
|
||||||
{
|
{
|
||||||
@ -303,7 +303,7 @@ bicubic_notab( PEL *pout, const PEL *pin,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
vips_interpolate_bicubic_interpolate( VipsInterpolate *interpolate,
|
vips_interpolate_bicubic_interpolate( VipsInterpolate *interpolate,
|
||||||
PEL *out, REGION *in, double x, double y )
|
void *out, REGION *in, double x, double y )
|
||||||
{
|
{
|
||||||
/* Find the mask index. We round-to-nearest, so we need to generate
|
/* Find the mask index. We round-to-nearest, so we need to generate
|
||||||
* indexes in 0 to VIPS_TRANSFORM_SCALE, 2^n + 1 values. We multiply
|
* indexes in 0 to VIPS_TRANSFORM_SCALE, 2^n + 1 values. We multiply
|
||||||
|
@ -196,7 +196,7 @@ vips_interpolate_init( VipsInterpolate *interpolate )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vips_interpolate:
|
* vips_interpolate: (skip)
|
||||||
* @interpolate: interpolator to use
|
* @interpolate: interpolator to use
|
||||||
* @out: write result here
|
* @out: write result here
|
||||||
* @in: read source data from here
|
* @in: read source data from here
|
||||||
@ -211,7 +211,7 @@ vips_interpolate_init( VipsInterpolate *interpolate )
|
|||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
vips_interpolate( VipsInterpolate *interpolate,
|
vips_interpolate( VipsInterpolate *interpolate,
|
||||||
PEL *out, REGION *in, double x, double y )
|
void *out, REGION *in, double x, double y )
|
||||||
{
|
{
|
||||||
VipsInterpolateClass *class = VIPS_INTERPOLATE_GET_CLASS( interpolate );
|
VipsInterpolateClass *class = VIPS_INTERPOLATE_GET_CLASS( interpolate );
|
||||||
|
|
||||||
@ -221,7 +221,7 @@ vips_interpolate( VipsInterpolate *interpolate,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vips_interpolate_get_method:
|
* vips_interpolate_get_method: (skip)
|
||||||
* @interpolate: interpolator to use
|
* @interpolate: interpolator to use
|
||||||
*
|
*
|
||||||
* Look up the @interpolate method in the class and return it. Use this
|
* Look up the @interpolate method in the class and return it. Use this
|
||||||
@ -329,7 +329,7 @@ G_DEFINE_TYPE( VipsInterpolateNearest, vips_interpolate_nearest,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
vips_interpolate_nearest_interpolate( VipsInterpolate *interpolate,
|
vips_interpolate_nearest_interpolate( VipsInterpolate *interpolate,
|
||||||
PEL *out, REGION *in, double x, double y )
|
void *out, REGION *in, double x, double y )
|
||||||
{
|
{
|
||||||
/* Pel size and line size.
|
/* Pel size and line size.
|
||||||
*/
|
*/
|
||||||
@ -342,11 +342,12 @@ vips_interpolate_nearest_interpolate( VipsInterpolate *interpolate,
|
|||||||
const int yi = (int) y;
|
const int yi = (int) y;
|
||||||
|
|
||||||
const PEL *p = (PEL *) IM_REGION_ADDR( in, xi, yi );
|
const PEL *p = (PEL *) IM_REGION_ADDR( in, xi, yi );
|
||||||
|
PEL *q = (PEL *) out;
|
||||||
|
|
||||||
int z;
|
int z;
|
||||||
|
|
||||||
for( z = 0; z < ps; z++ )
|
for( z = 0; z < ps; z++ )
|
||||||
out[z] = p[z];
|
q[z] = p[z];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -386,7 +387,7 @@ vips_interpolate_nearest_new( void )
|
|||||||
* A convenience function that returns a nearest-neighbour interpolator you
|
* A convenience function that returns a nearest-neighbour interpolator you
|
||||||
* don't need to free.
|
* don't need to free.
|
||||||
*
|
*
|
||||||
* Returns: a nearest-neighbour interpolator
|
* Returns: (transfer none): a nearest-neighbour interpolator
|
||||||
*/
|
*/
|
||||||
VipsInterpolate *
|
VipsInterpolate *
|
||||||
vips_interpolate_nearest_static( void )
|
vips_interpolate_nearest_static( void )
|
||||||
@ -499,7 +500,7 @@ G_DEFINE_TYPE( VipsInterpolateBilinear, vips_interpolate_bilinear,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
vips_interpolate_bilinear_interpolate( VipsInterpolate *interpolate,
|
vips_interpolate_bilinear_interpolate( VipsInterpolate *interpolate,
|
||||||
PEL *out, REGION *in, double x, double y )
|
void *out, REGION *in, double x, double y )
|
||||||
{
|
{
|
||||||
/* Pel size and line size.
|
/* Pel size and line size.
|
||||||
*/
|
*/
|
||||||
@ -558,7 +559,7 @@ vips_interpolate_bilinear_new( void )
|
|||||||
* A convenience function that returns a bilinear interpolator you
|
* A convenience function that returns a bilinear interpolator you
|
||||||
* don't need to free.
|
* don't need to free.
|
||||||
*
|
*
|
||||||
* Returns: a bilinear interpolator
|
* Returns: (transfer none): a bilinear interpolator
|
||||||
*/
|
*/
|
||||||
VipsInterpolate *
|
VipsInterpolate *
|
||||||
vips_interpolate_bilinear_static( void )
|
vips_interpolate_bilinear_static( void )
|
||||||
|
@ -581,7 +581,7 @@ lbbicubic( const double c00,
|
|||||||
*/
|
*/
|
||||||
#define LBB_CONVERSION( conversion ) \
|
#define LBB_CONVERSION( conversion ) \
|
||||||
template <typename T> static void inline \
|
template <typename T> static void inline \
|
||||||
lbb_ ## conversion( PEL* restrict pout, \
|
lbb_ ## conversion( void* restrict pout, \
|
||||||
const PEL* restrict pin, \
|
const PEL* restrict pin, \
|
||||||
const int bands, \
|
const int bands, \
|
||||||
const int lskip, \
|
const int lskip, \
|
||||||
@ -763,7 +763,7 @@ G_DEFINE_TYPE( VipsInterpolateLbb, vips_interpolate_lbb,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
vips_interpolate_lbb_interpolate( VipsInterpolate* restrict interpolate,
|
vips_interpolate_lbb_interpolate( VipsInterpolate* restrict interpolate,
|
||||||
PEL* restrict out,
|
void* restrict out,
|
||||||
REGION* restrict in,
|
REGION* restrict in,
|
||||||
double absolute_x,
|
double absolute_x,
|
||||||
double absolute_y )
|
double absolute_y )
|
||||||
|
@ -1224,8 +1224,8 @@ lbbicubic( const double c00,
|
|||||||
*/
|
*/
|
||||||
#define NOHALO_CONVERSION( conversion ) \
|
#define NOHALO_CONVERSION( conversion ) \
|
||||||
template <typename T> static void inline \
|
template <typename T> static void inline \
|
||||||
nohalo_ ## conversion( PEL* restrict pout, \
|
nohalo_ ## conversion( void* restrict pout, \
|
||||||
const PEL* restrict pin, \
|
const void* restrict pin, \
|
||||||
const int bands, \
|
const int bands, \
|
||||||
const int lskip, \
|
const int lskip, \
|
||||||
const double x_0, \
|
const double x_0, \
|
||||||
@ -1479,7 +1479,7 @@ G_DEFINE_TYPE( VipsInterpolateNohalo, vips_interpolate_nohalo,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
vips_interpolate_nohalo_interpolate( VipsInterpolate* restrict interpolate,
|
vips_interpolate_nohalo_interpolate( VipsInterpolate* restrict interpolate,
|
||||||
PEL* restrict out,
|
void* restrict out,
|
||||||
REGION* restrict in,
|
REGION* restrict in,
|
||||||
double absolute_x,
|
double absolute_x,
|
||||||
double absolute_y )
|
double absolute_y )
|
||||||
|
@ -178,7 +178,7 @@ typedef struct _VipsInterpolateVsqbsClass {
|
|||||||
*/
|
*/
|
||||||
#define VSQBS_CONVERSION( conversion ) \
|
#define VSQBS_CONVERSION( conversion ) \
|
||||||
template <typename T> static void inline \
|
template <typename T> static void inline \
|
||||||
vsqbs_ ## conversion( PEL* restrict pout, \
|
vsqbs_ ## conversion( void* restrict pout, \
|
||||||
const PEL* restrict pin, \
|
const PEL* restrict pin, \
|
||||||
const int bands, \
|
const int bands, \
|
||||||
const int lskip, \
|
const int lskip, \
|
||||||
@ -303,7 +303,7 @@ extern "C" {
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
vips_interpolate_vsqbs_interpolate( VipsInterpolate* restrict interpolate,
|
vips_interpolate_vsqbs_interpolate( VipsInterpolate* restrict interpolate,
|
||||||
PEL* restrict out,
|
void* restrict out,
|
||||||
REGION* restrict in,
|
REGION* restrict in,
|
||||||
double absolute_x,
|
double absolute_x,
|
||||||
double absolute_y )
|
double absolute_y )
|
||||||
|
@ -1,36 +1,26 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
|
||||||
import logging
|
|
||||||
import gc
|
import gc
|
||||||
import sys
|
import sys
|
||||||
import ctypes
|
|
||||||
|
|
||||||
import gobject
|
# you might need this in your .bashrc
|
||||||
|
# export GI_TYPELIB_PATH=$VIPSHOME/lib/girepository-1.0
|
||||||
|
from gi.repository import Vips
|
||||||
|
|
||||||
logging.basicConfig(level = logging.DEBUG)
|
a = Vips.Image()
|
||||||
|
a.props.filename = sys.argv[1]
|
||||||
|
a.props.mode = 'r'
|
||||||
|
if a.build() != 0:
|
||||||
|
print Vips.error_buffer()
|
||||||
|
sys.exit(-1)
|
||||||
|
|
||||||
# .15 is 7.25+ with the new vips8 API
|
print 'a.get_width() =', a.get_width()
|
||||||
libvips = ctypes.CDLL('libvips.so.15')
|
print 'a.props.width =', a.props.width
|
||||||
libvips.vips_init(sys.argv[0])
|
|
||||||
|
|
||||||
# should be able to find vipsimage, hopefully
|
print 'starting shutdown ...'
|
||||||
print gobject.type_from_name('VipsImage')
|
del a
|
||||||
|
# sometimes have to do several GCs to get them all, not sure why
|
||||||
|
for i in range(10):
|
||||||
|
gc.collect ()
|
||||||
|
print 'shutdown!'
|
||||||
|
|
||||||
_VipsImage = gobject.type_from_name('VipsImage')
|
|
||||||
|
|
||||||
class VipsImage(_VipsImage):
|
|
||||||
def __new__(cls):
|
|
||||||
gobject.type_register(cls)
|
|
||||||
return gobject.GObject.__new__(cls)
|
|
||||||
|
|
||||||
def __init__(self, filename = None, mode = None):
|
|
||||||
logging.debug('vipsimage: init')
|
|
||||||
|
|
||||||
if filename != None:
|
|
||||||
self.props.filename = filename
|
|
||||||
|
|
||||||
if mode != None:
|
|
||||||
self.props.mode = mode
|
|
||||||
|
|
||||||
a = VipsImage('/home/john/pics/healthygirl.jpg')
|
|
||||||
# a = gobject.new(VipsImage, '/home/john/pics/healthygirl.jpg')
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user