diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am index da5b53a1..aa1641a3 100644 --- a/doc/reference/Makefile.am +++ b/doc/reference/Makefile.am @@ -136,6 +136,7 @@ content_files = \ using-python.xml \ using-cpp.xml \ extending.xml \ + function-list.xml \ binding.xml # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded @@ -147,6 +148,7 @@ expand_content_files = \ using-python.xml \ using-cpp.xml \ extending.xml \ + function-list.xml \ binding.xml # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. @@ -163,7 +165,8 @@ include gtk-doc.make # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST += \ - images + images \ + gen-function-list.py # Files not to distribute # for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types diff --git a/doc/reference/function-list.xml b/doc/reference/function-list.xml new file mode 100644 index 00000000..378a53f1 --- /dev/null +++ b/doc/reference/function-list.xml @@ -0,0 +1,1104 @@ + + + + + + VIPS function list + 3 + VIPS Library + + + + Using VIPS + List of VIPS functions and operators + + + + Function list + + VIPS has a set of operators, each of which computes some useful image + processing operation. Each operator is + implemented as a %GObject class, for example VipsGamma. + Classes are identified by their nickname, in this case + gamma. + + From the command-line, C++ and most language bindings, you use the + nickname to call the operator. For example in C++: + + + vips::VImage fred = ...; + vips::VImage jim = fred.gamma(); + + + or Python: + + + fred = jim.gamma() + + + VIPS has a set of C wrapper functions for calling operators, in this + case vips_gamma(): + + + VipsImage *fred = ...; + VipsImage *jim; + + if (vips_gamma(fred, *jim, NULL)) + ...error; + + + Some operators have many convenience functions. + + + + This table lists all the VIPS operators with their C convenience + functions and a short description. It's supposed to be useful for + searching. See the API docs each function links to for details. + + + + + VIPS functions and operators + + + + Operator + Description + C functions + + + + + + system + run an external command + vips_system() + + + add + add two images + vips_add() + + + subtract + subtract two images + vips_subtract() + + + multiply + multiply two images + vips_multiply() + + + divide + divide two images + vips_divide() + + + relational + relational operation on two images + vips_relational(), vips_equal(), vips_notequal(), vips_less(), + vips_lesseq(), vips_more(), vips_moreeq() + + + remainder + remainder after integer division of two images + vips_remainder() + + + boolean + boolean operation on two images + vips_boolean(), vips_andimage(), vips_orimage(), vips_eorimage(), + vips_lshift(), vips_rshift() + + + math2 + binary math operations + vips_math2(), vips_pow(), vips_wop() + + + complex2 + complex binary operations on two images + vips_complex2(), vips_cross_phase() + + + complexform + form a complex image from two real images + vips_complexform() + + + sum + sum an array of images + vips_sum() + + + invert + invert an image + vips_invert() + + + linear + calculate (a * in + b) + vips_linear(), vips_linear1() + + + math + apply a math operation to an image + vips_math(), vips_sin(), vips_cos(), vips_tan(), vips_asin(), + vips_acos(), vips_atan(), vips_exp(), vips_exp10(), vips_log(), + vips_log10() + + + abs + absolute value of an image + vips_abs() + + + sign + unit vector of pixel + vips_sign() + + + round + perform a round function on an image + vips_round(), vips_floor(), vips_ceil(), vips_rint() + + + relational_const + relational operations against a constant + vips_relational_const(), vips_equal_const(), vips_notequal_const(), + vips_less_const(), vips_lesseq_const(), vips_more_const(), + vips_moreeq_const(), vips_relational_const1(), vips_equal_const1(), + vips_notequal_const1(), vips_less_const1(), vips_lesseq_const1(), + vips_more_const1(), vips_moreeq_const1() + + + remainder_const + remainder after integer division of an image and a constant + vips_remainder_const(), vips_remainder_const1() + + + boolean_const + boolean operations against a constant + vips_boolean_const(), vips_andimage_const(), vips_orimage_const(), + vips_eorimage_const(), vips_lshift_const(), vips_rshift_const(), + vips_boolean_const1(), vips_andimage_const1(), vips_orimage_const1(), + vips_eorimage_const1(), vips_lshift_const1(), vips_rshift_const1() + + + math2_const + pow( @in, @c ) + vips_math2_const(), vips_pow_const(), vips_wop_const(), + vips_math2_const1(), vips_pow_const1(), vips_wop_const1() + + + complex + perform a complex operation on an image + vips_complex(), vips_polar(), vips_rect(), vips_conj() + + + complexget + get a component from a complex image + vips_complexget(), vips_real(), vips_imag() + + + avg + find image average + vips_avg() + + + min + find image minimum + vips_min() + + + max + find image maximum + vips_max() + + + deviate + find image standard deviation + vips_deviate() + + + stats + find image average + vips_stats() + + + hist_find + find image histogram + vips_hist_find() + + + hist_find_ndim + find n-dimensional image histogram + vips_hist_find_ndim() + + + hist_find_indexed + find indexed image histogram + vips_hist_find_indexed() + + + hough_line + find hough line transform + vips_hough_line() + + + hough_circle + find hough circle transform + vips_hough_circle() + + + project + find image projections + vips_project() + + + profile + find image profiles + vips_profile() + + + measure + measure a set of patches on a color chart + vips_measure() + + + getpoint + read a point from an image + vips_getpoint() + + + copy + copy an image + vips_copy() + + + tilecache + cache an image as a set of tiles + vips_tilecache() + + + linecache + cache an image as a set of lines + vips_linecache() + + + sequential + check sequential access + vips_sequential() + + + cache + cache an image + vips_cache() + + + embed + embed an image in a larger image + vips_embed() + + + flip + flip an image + vips_flip() + + + insert + insert image @sub into @main at @x, @y + vips_insert() + + + join + join a pair of images + vips_join() + + + extract_area + extract an area from an image + vips_extract_area(), vips_crop() + + + extract_band + extract band from an image + vips_extract_band() + + + bandjoin + bandwise join a set of images + vips_bandjoin(), vips_bandjoin2() + + + bandrank + band-wise rank of a set of images + vips_bandrank() + + + bandmean + band-wise average + vips_bandmean() + + + bandbool + boolean operation across image bands + vips_bandbool(), vips_bandand(), vips_bandor(), vips_bandeor(), + vips_bandmean() + + + replicate + replicate an image + vips_replicate() + + + cast + cast an image + vips_cast(), vips_cast_uchar(), vips_cast_char(), vips_cast_ushort(), + vips_cast_short(), vips_cast_uint(), vips_cast_int(), vips_cast_float(), + vips_cast_double(), vips_cast_complex(), vips_cast_dpcomplex() + + + rot + rotate an image + vips_rot() + + + rot45 + rotate an image + vips_rot45() + + + autorot + autorotate image by exif tag + vips_autorot() + + + ifthenelse + ifthenelse an image + vips_ifthenelse() + + + recomb + linear recombination with matrix + vips_recomb() + + + flatten + flatten alpha out of an image + vips_flatten() + + + grid + grid an image + vips_grid() + + + scale + scale an image to uchar + vips_scale() + + + wrap + wrap image origin + vips_wrap() + + + zoom + zoom an image + vips_zoom() + + + subsample + subsample an image + vips_subsample() + + + msb + pick most-significant byte from an image + vips_msb() + + + falsecolour + false colour an image + vips_falsecolour() + + + gamma + gamma an image + vips_gamma() + + + black + make a black image + vips_black() + + + gaussnoise + make a gaussnoise image + vips_gaussnoise() + + + text + make a text image + vips_text() + + + xyz + make an image where pixel values are coordinates + vips_xyz() + + + gaussmat + make a gaussian image + vips_gaussmat() + + + logmat + make a laplacian of gaussian image + vips_logmat() + + + eye + make an image showing the eye's spatial response + vips_eye() + + + grey + make a grey ramp image + vips_grey() + + + zone + make a zone plate + vips_zone() + + + sines + make a 2D sine wave + vips_sines() + + + mask_ideal + make an ideal filter + vips_mask_ideal() + + + mask_ideal_ring + make an ideal ring filter + vips_mask_ideal_ring() + + + mask_ideal_band + make an ideal band filter + vips_mask_ideal_band() + + + mask_butterworth + make a butterworth filter + vips_mask_butterworth() + + + mask_butterworth_ring + make a butterworth ring filter + vips_mask_butterworth_ring() + + + mask_butterworth_band + make a butterworth_band filter + vips_mask_butterworth_band() + + + mask_gaussian + make a gaussian filter + vips_mask_gaussian() + + + mask_gaussian_ring + make a gaussian ring filter + vips_mask_gaussian_ring() + + + mask_gaussian_band + make a gaussian filter + vips_mask_gaussian_band() + + + mask_fractal + make fractal filter + vips_mask_fractal() + + + buildlut + build a look-up table + vips_buildlut() + + + invertlut + build an inverted look-up table + vips_invertlut() + + + tonelut + build a look-up table + vips_tonelut() + + + identity + make a 1D image where pixel values are indexes + vips_identity() + + + fractsurf + make a fractal surface + vips_fractsurf() + + + radload + load a Radiance image from a file + vips_radload() + + + ppmload + load ppm from file + vips_ppmload() + + + csvload + load csv from file + vips_csvload() + + + matrixload + load matrix from file + vips_matrixload() + + + analyzeload + load an Analyze6 image + vips_analyzeload() + + + rawload + load raw data from a file + vips_rawload() + + + pngload + load png from file + vips_pngload() + + + pngload_buffer + load png from buffer + vips_pngload_buffer() + + + matload + load mat from file + vips_matload() + + + jpegload + load jpeg from file + vips_jpegload() + + + jpegload_buffer + load jpeg from buffer + vips_jpegload_buffer() + + + webpload + load webp from file + vips_webpload() + + + webpload_buffer + load webp from buffer + vips_webpload_buffer() + + + tiffload + load tiff from file + vips_tiffload() + + + tiffload_buffer + load tiff from buffer + vips_tiffload_buffer() + + + openslideload + load file with OpenSlide + vips_openslideload() + + + magickload + load file with ImageMagick + vips_magickload() + + + fitsload + load a FITS image + vips_fitsload() + + + openexrload + load an OpenEXR image + vips_openexrload() + + + radsave + save image to Radiance file + vips_radsave() + + + ppmsave + save image to ppm file + vips_ppmsave() + + + csvsave + save image to csv file + vips_csvsave() + + + matrixsave + save image to matrix file + vips_matrixsave() + + + matrixprint + print matrix + vips_matrixprint() + + + rawsave + save image to raw file + vips_rawsave() + + + rawsave_fd + write raw image to file descriptor + vips_rawsave_fd() + + + dzsave + save image to deep zoom format + vips_dzsave() + + + pngsave + save image to png file + vips_pngsave() + + + pngsave_buffer + save image to png buffer + vips_pngsave_buffer() + + + jpegsave + save image to jpeg file + vips_jpegsave() + + + jpegsave_buffer + save image to jpeg buffer + vips_jpegsave_buffer() + + + jpegsave_mime + save image to jpeg mime + vips_jpegsave_mime() + + + webpsave + save image to webp file + vips_webpsave() + + + webpsave_buffer + save image to webp buffer + vips_webpsave_buffer() + + + tiffsave + save image to tiff file + vips_tiffsave() + + + fitssave + save image to fits file + vips_fitssave() + + + shrink + shrink an image + vips_shrink() + + + quadratic + resample an image with a quadratic transform + vips_quadratic() + + + affine + affine transform of an image + vips_affine() + + + similarity + similarity transform of an image + vips_similarity() + + + resize + resize an image + vips_resize() + + + colourspace + convert to a new colourspace + vips_colourspace() + + + Lab2XYZ + transform CIELAB to XYZ + vips_Lab2XYZ() + + + XYZ2Lab + transform XYZ to Lab + vips_XYZ2Lab() + + + Lab2LCh + transform Lab to LCh + vips_Lab2LCh() + + + LCh2Lab + transform LCh to Lab + vips_LCh2Lab() + + + LCh2CMC + transform LCh to CMC + vips_LCh2CMC() + + + CMC2LCh + transform LCh to CMC + vips_CMC2LCh() + + + XYZ2Yxy + transform XYZ to Yxy + vips_XYZ2Yxy() + + + Yxy2XYZ + transform Yxy to XYZ + vips_Yxy2XYZ() + + + scRGB2XYZ + transform scRGB to XYZ + vips_scRGB2XYZ() + + + XYZ2scRGB + transform XYZ to scRGB + vips_XYZ2scRGB() + + + LabQ2Lab + unpack a LabQ image to float Lab + vips_LabQ2Lab() + + + Lab2LabQ + transform float Lab to LabQ coding + vips_Lab2LabQ() + + + LabQ2LabS + unpack a LabQ image to short Lab + vips_LabQ2LabS() + + + LabS2LabQ + transform short Lab to LabQ coding + vips_LabS2LabQ() + + + LabS2Lab + transform signed short Lab to float + vips_LabS2Lab() + + + Lab2LabS + transform float Lab to signed short + vips_Lab2LabS() + + + rad2float + unpack Radiance coding to float RGB + vips_rad2float() + + + float2rad + transform float RGB to Radiance coding + vips_float2rad() + + + LabQ2sRGB + unpack a LabQ image to short Lab + vips_LabQ2sRGB() + + + sRGB2scRGB + convert an sRGB image to scRGB + vips_sRGB2scRGB() + + + scRGB2sRGB + convert an scRGB image to sRGB + vips_scRGB2sRGB() + + + icc_import + import from device with ICC profile + vips_icc_import() + + + icc_export + output to device with ICC profile + vips_icc_export() + + + icc_transform + transform between devices with ICC profiles + vips_icc_transform() + + + dE76 + calculate dE76 + vips_dE76() + + + dE00 + calculate dE00 + vips_dE00() + + + dECMC + calculate dECMC + vips_dECMC() + + + maplut + map an image though a lut + vips_maplut() + + + percent + find threshold for percent of pixels + vips_percent() + + + stdif + statistical difference + vips_stdif() + + + hist_cum + form cumulative histogram + vips_hist_cum() + + + hist_match + match two histograms + vips_hist_match() + + + hist_norm + normalise histogram + vips_hist_norm() + + + hist_equal + histogram equalisation + vips_hist_equal() + + + hist_plot + plot histogram + vips_hist_plot() + + + hist_local + local histogram equalisation + vips_hist_local() + + + hist_ismonotonic + test for monotonicity + vips_hist_ismonotonic() + + + conv + convolution operation + vips_conv() + + + compass + convolve with rotating mask + vips_compass() + + + convsep + seperable convolution operation + vips_convsep() + + + fastcor + fast correlation + vips_fastcor() + + + spcor + spatial correlation + vips_spcor() + + + sharpen + unsharp masking for print + vips_sharpen() + + + gaussblur + gaussian blur + vips_gaussblur() + + + fwfft + forward FFT + vips_fwfft() + + + invfft + inverse FFT + vips_invfft() + + + freqmult + frequency-domain filtering + vips_freqmult() + + + spectrum + make displayable power spectrum + vips_spectrum() + + + phasecor + calculate phase correlation + vips_phasecor() + + + morph + morphology operation + vips_morph() + + + rank + rank filter + vips_rank(), vips_median() + + + countlines + count lines in an image + vips_countlines() + + + labelregions + label regions in an image + vips_labelregions() + + + draw_rect + paint a rectangle on an image + vips_draw_rect(), vips_draw_rect1(), vips_draw_point(), + vips_draw_point1() + + + draw_mask + draw a mask on an image + vips_draw_mask(), vips_draw_mask1() + + + draw_line + draw a line on an image + vips_draw_line(), vips_draw_line1(), + vips_draw_line_mask(), vips_draw_line_mask1() + + + draw_circle + draw a circle on an image + vips_draw_circle(), vips_draw_circle1() + + + draw_flood + flood-fill an area + vips_draw_flood(), vips_draw_flood1() + + + draw_image + paint an image into another image + vips_draw_image() + + + draw_smudge + blur a rectangle on an image + vips_draw_smudge() + + + merge + merge two images + vips_merge() + + + mosaic + mosaic two images + vips_mosaic() + + + mosaic1 + first-order mosaic of two images + vips_mosaic1() + + + match + first-order match of two images + vips_match() + + + globalbalance + global balance an image mosaic + vips_globalbalance() + + + + +
+
+ +
+ +
diff --git a/doc/reference/gen-function-list.py b/doc/reference/gen-function-list.py new file mode 100755 index 00000000..3573b62a --- /dev/null +++ b/doc/reference/gen-function-list.py @@ -0,0 +1,46 @@ +#!/usr/bin/python + +# walk vips and generate a list of all operators and their descriptions +# for docs + +# sample output: + +# +# gamma +# gamma an image +# vips_gamma() +# + +from gi.repository import Vips, GObject + +vips_type_operation = GObject.GType.from_name("VipsOperation") + +def gen_function(cls): + op = Vips.Operation.new(cls.name) + gtype = Vips.type_find("VipsOperation", cls.name) + nickname = Vips.nickname_find(gtype) + + print '' + print ' %s' % nickname + print ' %s' % op.get_description() + print ' vips_%s()' % nickname + print '' + +# we have a few synonyms ... don't generate twice +generated = {} + +def gen_function_list(cls): + if not cls.is_abstract(): + gtype = Vips.type_find("VipsOperation", cls.name) + nickname = Vips.nickname_find(gtype) + if not nickname in generated: + gen_function(cls) + generated[nickname] = True + + if len(cls.children) > 0: + for child in cls.children: + gen_function_list(child) + +if __name__ == '__main__': + gen_function_list(vips_type_operation) + diff --git a/doc/reference/libvips-docs.xml.in b/doc/reference/libvips-docs.xml.in index 1167bc53..3f5a7db3 100644 --- a/doc/reference/libvips-docs.xml.in +++ b/doc/reference/libvips-docs.xml.in @@ -36,6 +36,7 @@ + diff --git a/libvips/conversion/tilecache.c b/libvips/conversion/tilecache.c index f6b4ead5..1e046957 100644 --- a/libvips/conversion/tilecache.c +++ b/libvips/conversion/tilecache.c @@ -135,7 +135,8 @@ typedef struct _VipsBlockCache { typedef VipsConversionClass VipsBlockCacheClass; -G_DEFINE_TYPE( VipsBlockCache, vips_block_cache, VIPS_TYPE_CONVERSION ); +G_DEFINE_ABSTRACT_TYPE( VipsBlockCache, vips_block_cache, + VIPS_TYPE_CONVERSION ); #define VIPS_TYPE_BLOCK_CACHE (vips_block_cache_get_type()) diff --git a/libvips/draw/draw_circle.c b/libvips/draw/draw_circle.c index c681cf6a..96724600 100644 --- a/libvips/draw/draw_circle.c +++ b/libvips/draw/draw_circle.c @@ -227,7 +227,7 @@ vips_draw_circle_class_init( VipsDrawCircleClass *class ) gobject_class->get_property = vips_object_get_property; vobject_class->nickname = "draw_circle"; - vobject_class->description = _( "draw a draw_circle on an image" ); + vobject_class->description = _( "draw a circle on an image" ); vobject_class->build = vips_draw_circle_build; VIPS_ARG_INT( class, "cx", 3, diff --git a/libvips/draw/draw_line.c b/libvips/draw/draw_line.c index fe151d52..69d3c56b 100644 --- a/libvips/draw/draw_line.c +++ b/libvips/draw/draw_line.c @@ -277,7 +277,7 @@ vips_draw_line_class_init( VipsDrawLineClass *class ) gobject_class->get_property = vips_object_get_property; vobject_class->nickname = "draw_line"; - vobject_class->description = _( "draw a draw_line on an image" ); + vobject_class->description = _( "draw a line on an image" ); vobject_class->build = vips_draw_line_build; VIPS_ARG_INT( class, "x1", 3,