From 1b6cd28fb8e5f2ece3b7c4d59843351d709da2ea Mon Sep 17 00:00:00 2001 From: John Cupitt Date: Fri, 4 Jun 2021 16:57:08 +0100 Subject: [PATCH] fix links in docs --- doc/Cite.md | 12 +++++----- doc/Cite.xml | 4 ++-- doc/How-it-opens-files.md | 3 ++- doc/How-it-opens-files.xml | 2 +- doc/How-it-works.md | 42 +++++++++++++++++------------------ doc/How-it-works.xml | 10 +++++---- doc/Makefile.am | 2 +- doc/Making-image-pyramids.md | 18 ++++++++------- doc/Making-image-pyramids.xml | 5 +++-- doc/libvips-docs.xml.in | 2 +- doc/libvips-from-C++.md | 6 +++-- doc/libvips-from-C++.xml | 2 +- doc/libvips.actions | 0 13 files changed, 58 insertions(+), 50 deletions(-) create mode 100644 doc/libvips.actions diff --git a/doc/Cite.md b/doc/Cite.md index 724afea3..101df4d1 100644 --- a/doc/Cite.md +++ b/doc/Cite.md @@ -9,11 +9,11 @@ References to cite for libvips -Martinez, K. and Cupitt, J. (2005) [VIPS -- a highly tuned image processing -software architecture](http://eprints.ecs.soton.ac.uk/12371). In Proceedings -of IEEE International Conference on Image Processing 2, pp. 574-577, Genova. +Martinez, K. and Cupitt, J. (2005) +VIPS -- a highly tuned image processing software architecture. In Proceedings of IEEE International +Conference on Image Processing 2, pp. 574-577, Genova. -Cupitt, J. and Martinez, K. (1996) [VIPS: An image processing system -for large images](http://eprints.soton.ac.uk/252227/1/vipsspie96a.pdf), -Proc. SPIE, vol. 2663, pp. 19--28. +Cupitt, J. and Martinez, K. (1996) +VIPS: An image processing system for large images, Proc. SPIE, vol. 2663, +pp. 19--28. diff --git a/doc/Cite.xml b/doc/Cite.xml index cdc4313f..4fb6b7ad 100644 --- a/doc/Cite.xml +++ b/doc/Cite.xml @@ -11,10 +11,10 @@ Cite References to cite for libvips - Martinez, K. and Cupitt, J. (2005) VIPS – a highly tuned image processing software architecture. In Proceedings of IEEE International Conference on Image Processing 2, pp. 574-577, Genova. + Martinez, K. and Cupitt, J. (2005) VIPS – a highly tuned image processing software architecture. In Proceedings of IEEE International Conference on Image Processing 2, pp. 574-577, Genova. - Cupitt, J. and Martinez, K. (1996) VIPS: An image processing system for large images, Proc. SPIE, vol. 2663, pp. 19–28. + Cupitt, J. and Martinez, K. (1996) VIPS: An image processing system for large images, Proc. SPIE, vol. 2663, pp. 19–28. diff --git a/doc/How-it-opens-files.md b/doc/How-it-opens-files.md index 70e06caf..3b1f4b05 100644 --- a/doc/How-it-opens-files.md +++ b/doc/How-it-opens-files.md @@ -34,7 +34,8 @@ array. libvips supports direct access for vips, 8-bit binary ppm/pbm/pnm, analyse and raw. libvips has a special direct write mode where pixels can be written directly -to the file image. This is used for the [draw operators](libvips-draw.html). +to the file image. This is used for the draw +operators. # Random access via load library diff --git a/doc/How-it-opens-files.xml b/doc/How-it-opens-files.xml index b13f36d6..853799e3 100644 --- a/doc/How-it-opens-files.xml +++ b/doc/How-it-opens-files.xml @@ -25,7 +25,7 @@ For this to be possible, the file format needs to be a simple dump of a memory array. libvips supports direct access for vips, 8-bit binary ppm/pbm/pnm, analyse and raw. - libvips has a special direct write mode where pixels can be written directly to the file image. This is used for the draw operators. + libvips has a special direct write mode where pixels can be written directly to the file image. This is used for the draw operators. diff --git a/doc/How-it-works.md b/doc/How-it-works.md index c53a2802..64ee1a9c 100644 --- a/doc/How-it-works.md +++ b/doc/How-it-works.md @@ -111,12 +111,13 @@ large images at low cost. **Run-time code generation** -VIPS uses [Orc](http://code.entropywave.com/orc/), a run-time compiler, to -generate code for some operations. For example, to compute a convolution -on an 8-bit image, VIPS will examine the convolution matrix and the source -image and generate a tiny program to calculate the convolution. This program -is then "compiled" to the vector instruction set for your CPU, for example -SSE3 on most x86 processors. +VIPS uses +Orc, a +run-time compiler, to generate code for some operations. For example, to +compute a convolution on an 8-bit image, VIPS will examine the convolution +matrix and the source image and generate a tiny program to calculate the +convolution. This program is then "compiled" to the vector instruction set +for your CPU, for example SSE3 on most x86 processors. Run-time vector code generation typically speeds operations up by a factor of three or four. @@ -162,12 +163,12 @@ tiled TIFF files, from binary PPM/PGM/PBM/PFM, from Radiance (HDR) files, from FITS images and from tiled OpenEXR images. VIPS will automatically unpack other formats to temporary disc files for you but this can obviously generate a lot of disc traffic. It also has a special -sequential mode for streaming operations on non-random-access -formats. Another section in these docs explains [how libvips opens a -file](How-it-opens-files.md.html). One -of the sources uses the [ImageMagick](http://www.imagemagick.org) (or -optionally [GraphicsMagick](http://www.graphicsmagick.org) library, so -VIPS can read any image format that these libraries can read. +sequential mode for streaming operations on non-random-access formats. Another +section in these docs explains how +libvips opens a file. One of the sources uses the ImageMagick (or optionally GraphicsMagick library, so VIPS +can read any image format that these libraries can read. VIPS images are held on disc as a 64-byte header containing basic image information like width, height, bands and format, then the image data as @@ -243,16 +244,15 @@ operation is a GObject class. You can use the standard GObject calls to walk the class hierarchy and discover operations, and libvips adds a small amount of extra introspection metadata to handle things like optional arguments. -The [C API](using-from-c.html) is a set of simple wrappers which create -class instances for you. The [C++ API](using-from-cpp.html) is a little -fancier and adds things like automatic object lifetime management. The -[command-line interface](using-cli.html) uses introspection to run any vips -operation in the class hierarchy. +The C API is a set of simple wrappers +which create class instances for you. The C++ +API is a little fancier and adds things like automatic object lifetime +management. The command-line interface +uses introspection to run any vips operation in the class hierarchy. -There are bindings for [many other -languages](https://libvips.github.io/libvips/) on many platforms. Most of -these bindings use the introspection system to generate the binding at -run-time. +There are bindings for many +other languages on many platforms. Most of these bindings use the +introspection system to generate the binding at run-time. **Snip** diff --git a/doc/How-it-works.xml b/doc/How-it-works.xml index 987d60ae..18277cf0 100644 --- a/doc/How-it-works.xml +++ b/doc/How-it-works.xml @@ -98,7 +98,7 @@ g_object_unref( region ); Run-time code generation - VIPS uses Orc, a run-time compiler, to generate code for some operations. For example, to compute a convolution on an 8-bit image, VIPS will examine the convolution matrix and the source image and generate a tiny program to calculate the convolution. This program is then compiled to the vector instruction set for your CPU, for example SSE3 on most x86 processors. + VIPS uses Orc, a run-time compiler, to generate code for some operations. For example, to compute a convolution on an 8-bit image, VIPS will examine the convolution matrix and the source image and generate a tiny program to calculate the convolution. This program is then compiled to the vector instruction set for your CPU, for example SSE3 on most x86 processors. Run-time vector code generation typically speeds operations up by a factor of three or four. @@ -136,7 +136,9 @@ g_object_unref( region ); Data sources - VIPS has data sources which can supply pixels for processing from a variety of sources. VIPS can stream images from files in VIPS native format, from tiled TIFF files, from binary PPM/PGM/PBM/PFM, from Radiance (HDR) files, from FITS images and from tiled OpenEXR images. VIPS will automatically unpack other formats to temporary disc files for you but this can obviously generate a lot of disc traffic. It also has a special sequential mode for streaming operations on non-random-access formats. Another refsect3 in these docs explains how libvips opens a file. One of the sources uses the ImageMagick (or optionally GraphicsMagick library, so VIPS can read any image format that these libraries can read. + VIPS has data sources which can supply pixels for processing from a variety of sources. VIPS can stream images from files in VIPS native format, from tiled TIFF files, from binary PPM/PGM/PBM/PFM, from Radiance (HDR) files, from FITS images and from tiled OpenEXR images. VIPS will automatically unpack other formats to temporary disc files for you but this can obviously generate a lot of disc traffic. It also has a special sequential mode for streaming operations on non-random-access formats. Another refsect3 in these docs explains how libvips opens a file. One of the sources uses the ImageMagick (or optionally GraphicsMagick library, so VIPS can read any image format that these libraries can read. VIPS images are held on disc as a 64-byte header containing basic image information like width, height, bands and format, then the image data as a single large block of pixels, left-to-right and top-to-bottom, then an XML extension block holding all the image metadata, such as ICC profiles and EXIF blocks. @@ -201,10 +203,10 @@ g_object_unref( region ); VIPS has around 300 image processing operations written in this style. Each operation is a GObject class. You can use the standard GObject calls to walk the class hierarchy and discover operations, and libvips adds a small amount of extra introspection metadata to handle things like optional arguments. - The C API is a set of simple wrappers which create class instances for you. The C++ API is a little fancier and adds things like automatic object lifetime management. The command-line interface uses introspection to run any vips operation in the class hierarchy. + The C API is a set of simple wrappers which create class instances for you. The C++ API is a little fancier and adds things like automatic object lifetime management. The command-line interface uses introspection to run any vips operation in the class hierarchy. - There are bindings for many other languages on many platforms. Most of these bindings use the introspection system to generate the binding at run-time. + There are bindings for many other languages on many platforms. Most of these bindings use the introspection system to generate the binding at run-time. Snip diff --git a/doc/Makefile.am b/doc/Makefile.am index 0f7c23a5..036dcded 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -127,7 +127,7 @@ HTML_IMAGES = \ # pandoc makes section headers, we want refsect3 for gtk-doc .md.xml: pandoc -s --template="$(realpath pandoc-docbook-template.docbook)" --wrap=none -V title="$<" -f markdown+smart -t docbook -o $@ $< - sed -e s/section/refsect3/g < $@ > x && mv x $@ + sed -e s/section/refsect3/g < $@ > x.$@ && mv x.$@ $@ # Our markdown source files markdown_content_files = \ diff --git a/doc/Making-image-pyramids.md b/doc/Making-image-pyramids.md index 0b09591a..5909b76b 100644 --- a/doc/Making-image-pyramids.md +++ b/doc/Making-image-pyramids.md @@ -9,11 +9,12 @@ How to use libvips to make image pyramids -libvips includes `vips_dzsave()`, an operation that can build image pyramids -compatible with [DeepZoom](http://en.wikipedia.org/wiki/Deep_Zoom), Zoomify -and [Google Maps](https://developers.google.com/maps/) image viewers. It's -fast and can generate pyramids for large images using only a small amount -of memory. +libvips includes `vips_dzsave()`, an operation +that can build image pyramids compatible with DeepZoom, Zoomify +and Google Maps +image viewers. It's fast and can generate pyramids for large images using +only a small amount of memory. The TIFF writer, `vips_tiffsave()` can also build tiled pyramidal TIFF images, but that's very simple to use. This page concentrates on the DeepZoom builder. @@ -66,7 +67,7 @@ operation flags: sequential nocache You can also call `vips_dzsave()` from any language with a libvips binding, or by using `.dz` or `.szi` as an output file suffix. -# Writing [DeepZoom](http://en.wikipedia.org/wiki/Deep_Zoom) pyramids +# Writing DeepZoom pyramids The `--layout` option sets the basic mode of operation. With no `--layout`, dzsave writes DeepZoom pyramids. For example: @@ -104,10 +105,11 @@ directories called `TileGroupn`, each containing 256 image tiles. As with DeepZoom, you can use `--suffix` to set jpeg quality. -# Writing [Google Maps](https://developers.google.com/maps/) pyramids +# Writing Google Maps pyramids Use `--layout google` to write Google maps-style pyramids. These are -compatible with [leaflet](http://leafletjs.com/). For example: +compatible with Leaflet. For +example: ``` $ vips dzsave wtc.tif gmapdir --layout google diff --git a/doc/Making-image-pyramids.xml b/doc/Making-image-pyramids.xml index 62586491..fdc65f29 100644 --- a/doc/Making-image-pyramids.xml +++ b/doc/Making-image-pyramids.xml @@ -11,7 +11,8 @@ Pyramids How to use libvips to make image pyramids - libvips includes vips_dzsave(), an operation that can build image pyramids compatible with DeepZoom, Zoomify and Google Maps image viewers. It’s fast and can generate pyramids for large images using only a small amount of memory. + libvips includes vips_dzsave(), an operation that can build image pyramids compatible with DeepZoom, Zoomify and Google Maps image viewers. It’s fast and can generate pyramids for large images using only a small amount of memory. The TIFF writer, vips_tiffsave() can also build tiled pyramidal TIFF images, but that’s very simple to use. This page concentrates on the DeepZoom builder. @@ -103,7 +104,7 @@ $ vips dzsave huge.tif myzoom --layout zoomify Writing <link xlink:href="https://developers.google.com/maps/">Google Maps</link> pyramids - Use --layout google to write Google maps-style pyramids. These are compatible with leaflet. For example: + Use --layout google to write Google maps-style pyramids. These are compatible with Leaflet. For example: $ vips dzsave wtc.tif gmapdir --layout google diff --git a/doc/libvips-docs.xml.in b/doc/libvips-docs.xml.in index 957ca157..cdfaffb2 100644 --- a/doc/libvips-docs.xml.in +++ b/doc/libvips-docs.xml.in @@ -5,7 +5,7 @@ [ ]> - + libvips Reference Manual diff --git a/doc/libvips-from-C++.md b/doc/libvips-from-C++.md index 02469f69..bf20d7c8 100644 --- a/doc/libvips-from-C++.md +++ b/doc/libvips-from-C++.md @@ -13,5 +13,7 @@ libvips comes with a convenient C++ API. It is a very thin wrapper over the C API and adds automatic reference counting, exceptions, operator overloads, and automatic constant expansion. -The documentation for this API is in a [different part of the -website](https://libvips.github.io/libvips/API/current/cpp). +See the + +C++ API documentation +for more details. diff --git a/doc/libvips-from-C++.xml b/doc/libvips-from-C++.xml index b0f00097..5511aaf8 100644 --- a/doc/libvips-from-C++.xml +++ b/doc/libvips-from-C++.xml @@ -14,7 +14,7 @@ libvips comes with a convenient C++ API. It is a very thin wrapper over the C API and adds automatic reference counting, exceptions, operator overloads, and automatic constant expansion. - The documentation for this API is in a different part of the website. + See the C++ API documentation for more details. diff --git a/doc/libvips.actions b/doc/libvips.actions new file mode 100644 index 00000000..e69de29b