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 @@
CiteReferences 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 @@
PyramidsHow 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 Google Maps 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