fix links in docs

This commit is contained in:
John Cupitt 2021-06-04 16:57:08 +01:00
parent 3b4bb618c0
commit 1b6cd28fb8
13 changed files with 58 additions and 50 deletions

View File

@ -9,11 +9,11 @@
<refpurpose>References to cite for libvips</refpurpose> <refpurpose>References to cite for libvips</refpurpose>
</refnamediv> </refnamediv>
Martinez, K. and Cupitt, J. (2005) [VIPS -- a highly tuned image processing Martinez, K. and Cupitt, J. (2005)
software architecture](http://eprints.ecs.soton.ac.uk/12371). In Proceedings <ulink url="http://eprints.ecs.soton.ac.uk/12371">VIPS -- a highly tuned image processing software architecture</ulink>. In Proceedings of IEEE International
of IEEE International Conference on Image Processing 2, pp. 574-577, Genova. Conference on Image Processing 2, pp. 574-577, Genova.
Cupitt, J. and Martinez, K. (1996) [VIPS: An image processing system Cupitt, J. and Martinez, K. (1996)
for large images](http://eprints.soton.ac.uk/252227/1/vipsspie96a.pdf), <ulink url="http://eprints.soton.ac.uk/252227/1/vipsspie96a.pdf">VIPS: An image processing system for large images</ulink>, Proc. SPIE, vol. 2663,
Proc. SPIE, vol. 2663, pp. 19--28. pp. 19--28.

View File

@ -11,10 +11,10 @@
<refnamediv> <refname>Cite</refname> <refpurpose>References to cite for libvips</refpurpose> </refnamediv> <refnamediv> <refname>Cite</refname> <refpurpose>References to cite for libvips</refpurpose> </refnamediv>
</para> </para>
<para> <para>
Martinez, K. and Cupitt, J. (2005) <link xlink:href="http://eprints.ecs.soton.ac.uk/12371">VIPS a highly tuned image processing software architecture</link>. In Proceedings of IEEE International Conference on Image Processing 2, pp. 574-577, Genova. Martinez, K. and Cupitt, J. (2005) <ulink url="http://eprints.ecs.soton.ac.uk/12371">VIPS a highly tuned image processing software architecture</ulink>. In Proceedings of IEEE International Conference on Image Processing 2, pp. 574-577, Genova.
</para> </para>
<para> <para>
Cupitt, J. and Martinez, K. (1996) <link xlink:href="http://eprints.soton.ac.uk/252227/1/vipsspie96a.pdf">VIPS: An image processing system for large images</link>, Proc. SPIE, vol. 2663, pp. 1928. Cupitt, J. and Martinez, K. (1996) <ulink url="http://eprints.soton.ac.uk/252227/1/vipsspie96a.pdf">VIPS: An image processing system for large images</ulink>, Proc. SPIE, vol. 2663, pp. 1928.
</para> </para>

View File

@ -34,7 +34,8 @@ array. libvips supports direct access for vips, 8-bit binary ppm/pbm/pnm,
analyse and raw. analyse and raw.
libvips has a special direct write mode where pixels can be written directly 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 <ulink url="libvips-draw.html">draw
operators</ulink>.
# Random access via load library # Random access via load library

View File

@ -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. 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.
</para> </para>
<para> <para>
libvips has a special direct write mode where pixels can be written directly to the file image. This is used for the <link xlink:href="libvips-draw.html">draw operators</link>. libvips has a special direct write mode where pixels can be written directly to the file image. This is used for the <ulink url="libvips-draw.html">draw operators</ulink>.
</para> </para>
</refsect3> </refsect3>
<refsect3 xml:id="random-access-via-load-library"> <refsect3 xml:id="random-access-via-load-library">

View File

@ -111,12 +111,13 @@ large images at low cost.
**Run-time code generation** **Run-time code generation**
VIPS uses [Orc](http://code.entropywave.com/orc/), a run-time compiler, to VIPS uses
generate code for some operations. For example, to compute a convolution <ulink url="https://gstreamer.freedesktop.org/modules/orc.html">Orc</ulink>, a
on an 8-bit image, VIPS will examine the convolution matrix and the source run-time compiler, to generate code for some operations. For example, to
image and generate a tiny program to calculate the convolution. This program compute a convolution on an 8-bit image, VIPS will examine the convolution
is then "compiled" to the vector instruction set for your CPU, for example matrix and the source image and generate a tiny program to calculate the
SSE3 on most x86 processors. 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 Run-time vector code generation typically speeds operations up by a factor
of three or four. 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 from FITS images and from tiled OpenEXR images. VIPS will automatically
unpack other formats to temporary disc files for you but this can unpack other formats to temporary disc files for you but this can
obviously generate a lot of disc traffic. It also has a special obviously generate a lot of disc traffic. It also has a special
sequential mode for streaming operations on non-random-access sequential mode for streaming operations on non-random-access formats. Another
formats. Another section in these docs explains [how libvips opens a section in these docs explains <ulink url="How-it-opens-files.md.html">how
file](How-it-opens-files.md.html). One libvips opens a file</ulink>. One of the sources uses the <ulink
of the sources uses the [ImageMagick](http://www.imagemagick.org) (or url="http://www.imagemagick.org">ImageMagick</ulink> (or optionally <ulink
optionally [GraphicsMagick](http://www.graphicsmagick.org) library, so url="http://www.graphicsmagick.org">GraphicsMagick</ulink> library, so VIPS
VIPS can read any image format that these libraries can read. can read any image format that these libraries can read.
VIPS images are held on disc as a 64-byte header containing basic image 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 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 the class hierarchy and discover operations, and libvips adds a small amount
of extra introspection metadata to handle things like optional arguments. 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 The <ulink url="using-from-c.html">C API</ulink> is a set of simple wrappers
class instances for you. The [C++ API](using-from-cpp.html) is a little which create class instances for you. The <ulink url="using-from-cpp.html">C++
fancier and adds things like automatic object lifetime management. The API</ulink> is a little fancier and adds things like automatic object lifetime
[command-line interface](using-cli.html) uses introspection to run any vips management. The <ulink url="using-cli.html"> command-line interface</ulink>
operation in the class hierarchy. uses introspection to run any vips operation in the class hierarchy.
There are bindings for [many other There are bindings for <ulink url="https://libvips.github.io/libvips">many
languages](https://libvips.github.io/libvips/) on many platforms. Most of other languages</ulink> on many platforms. Most of these bindings use the
these bindings use the introspection system to generate the binding at introspection system to generate the binding at run-time.
run-time.
**Snip** **Snip**

View File

@ -98,7 +98,7 @@ g_object_unref( region );
<emphasis role="strong">Run-time code generation</emphasis> <emphasis role="strong">Run-time code generation</emphasis>
</para> </para>
<para> <para>
VIPS uses <link xlink:href="http://code.entropywave.com/orc/">Orc</link>, 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 <quote>compiled</quote> to the vector instruction set for your CPU, for example SSE3 on most x86 processors. VIPS uses <ulink url="https://gstreamer.freedesktop.org/modules/orc.html">Orc</ulink>, 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 <quote>compiled</quote> to the vector instruction set for your CPU, for example SSE3 on most x86 processors.
</para> </para>
<para> <para>
Run-time vector code generation typically speeds operations up by a factor of three or four. Run-time vector code generation typically speeds operations up by a factor of three or four.
@ -136,7 +136,9 @@ g_object_unref( region );
<emphasis role="strong">Data sources</emphasis> <emphasis role="strong">Data sources</emphasis>
</para> </para>
<para> <para>
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 <link xlink:href="How-it-opens-files.md.html">how libvips opens a file</link>. One of the sources uses the <link xlink:href="http://www.imagemagick.org">ImageMagick</link> (or optionally <link xlink:href="http://www.graphicsmagick.org">GraphicsMagick</link> 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 <ulink url="How-it-opens-files.md.html">how libvips opens a file</ulink>. One of the sources uses the <ulink
url="http://www.imagemagick.org">ImageMagick</ulink> (or optionally <ulink
url="http://www.graphicsmagick.org">GraphicsMagick</ulink> library, so VIPS can read any image format that these libraries can read.
</para> </para>
<para> <para>
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. 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. 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.
</para> </para>
<para> <para>
The <link xlink:href="using-from-c.html">C API</link> is a set of simple wrappers which create class instances for you. The <link xlink:href="using-from-cpp.html">C++ API</link> is a little fancier and adds things like automatic object lifetime management. The <link xlink:href="using-cli.html">command-line interface</link> uses introspection to run any vips operation in the class hierarchy. The <ulink url="using-from-c.html">C API</ulink> is a set of simple wrappers which create class instances for you. The <ulink url="using-from-cpp.html">C++ API</ulink> is a little fancier and adds things like automatic object lifetime management. The <ulink url="using-cli.html"> command-line interface</ulink> uses introspection to run any vips operation in the class hierarchy.
</para> </para>
<para> <para>
There are bindings for <link xlink:href="https://libvips.github.io/libvips/">many other languages</link> on many platforms. Most of these bindings use the introspection system to generate the binding at run-time. There are bindings for <ulink url="https://libvips.github.io/libvips">many other languages</ulink> on many platforms. Most of these bindings use the introspection system to generate the binding at run-time.
</para> </para>
<para> <para>
<emphasis role="strong">Snip</emphasis> <emphasis role="strong">Snip</emphasis>

View File

@ -127,7 +127,7 @@ HTML_IMAGES = \
# pandoc makes section headers, we want refsect3 for gtk-doc # pandoc makes section headers, we want refsect3 for gtk-doc
.md.xml: .md.xml:
pandoc -s --template="$(realpath pandoc-docbook-template.docbook)" --wrap=none -V title="$<" -f markdown+smart -t docbook -o $@ $< 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 # Our markdown source files
markdown_content_files = \ markdown_content_files = \

View File

@ -9,11 +9,12 @@
<refpurpose>How to use libvips to make image pyramids</refpurpose> <refpurpose>How to use libvips to make image pyramids</refpurpose>
</refnamediv> </refnamediv>
libvips includes `vips_dzsave()`, an operation that can build image pyramids libvips includes `vips_dzsave()`, an operation
compatible with [DeepZoom](http://en.wikipedia.org/wiki/Deep_Zoom), Zoomify that can build image pyramids compatible with <ulink
and [Google Maps](https://developers.google.com/maps/) image viewers. It's url="http://en.wikipedia.org/wiki/Deep_Zoom">DeepZoom</ulink>, Zoomify
fast and can generate pyramids for large images using only a small amount and <ulink url="https://developers.google.com/maps">Google Maps</ulink>
of memory. 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, 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. 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 You can also call `vips_dzsave()` from any language with a libvips binding, or
by using `.dz` or `.szi` as an output file suffix. 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 The `--layout` option sets the basic mode of operation. With no
`--layout`, dzsave writes DeepZoom pyramids. For example: `--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. 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 Use `--layout google` to write Google maps-style pyramids. These are
compatible with [leaflet](http://leafletjs.com/). For example: compatible with <ulink url="http://leafletjs.com">Leaflet</ulink>. For
example:
``` ```
$ vips dzsave wtc.tif gmapdir --layout google $ vips dzsave wtc.tif gmapdir --layout google

View File

@ -11,7 +11,8 @@
<refnamediv> <refname>Pyramids</refname> <refpurpose>How to use libvips to make image pyramids</refpurpose> </refnamediv> <refnamediv> <refname>Pyramids</refname> <refpurpose>How to use libvips to make image pyramids</refpurpose> </refnamediv>
</para> </para>
<para> <para>
libvips includes <literal>vips_dzsave()</literal>, an operation that can build image pyramids compatible with <link xlink:href="http://en.wikipedia.org/wiki/Deep_Zoom">DeepZoom</link>, Zoomify and <link xlink:href="https://developers.google.com/maps/">Google Maps</link> image viewers. Its fast and can generate pyramids for large images using only a small amount of memory. libvips includes <literal>vips_dzsave()</literal>, an operation that can build image pyramids compatible with <ulink
url="http://en.wikipedia.org/wiki/Deep_Zoom">DeepZoom</ulink>, Zoomify and <ulink url="https://developers.google.com/maps">Google Maps</ulink> image viewers. Its fast and can generate pyramids for large images using only a small amount of memory.
</para> </para>
<para> <para>
The TIFF writer, <literal>vips_tiffsave()</literal> can also build tiled pyramidal TIFF images, but thats very simple to use. This page concentrates on the DeepZoom builder. The TIFF writer, <literal>vips_tiffsave()</literal> can also build tiled pyramidal TIFF images, but thats very simple to use. This page concentrates on the DeepZoom builder.
@ -103,7 +104,7 @@ $ vips dzsave huge.tif myzoom --layout zoomify
<refsect3 xml:id="writing-google-maps-pyramids"> <refsect3 xml:id="writing-google-maps-pyramids">
<title>Writing <link xlink:href="https://developers.google.com/maps/">Google Maps</link> pyramids</title> <title>Writing <link xlink:href="https://developers.google.com/maps/">Google Maps</link> pyramids</title>
<para> <para>
Use <literal>--layout google</literal> to write Google maps-style pyramids. These are compatible with <link xlink:href="http://leafletjs.com/">leaflet</link>. For example: Use <literal>--layout google</literal> to write Google maps-style pyramids. These are compatible with <ulink url="http://leafletjs.com">Leaflet</ulink>. For example:
</para> </para>
<programlisting> <programlisting>
$ vips dzsave wtc.tif gmapdir --layout google $ vips dzsave wtc.tif gmapdir --layout google

View File

@ -5,7 +5,7 @@
[ [
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'"> <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
]> ]>
<book id="index"> <book id="index" xmlns:xlink="http://www.w3.org/1999/xlink">
<bookinfo> <bookinfo>
<title>libvips Reference Manual</title> <title>libvips Reference Manual</title>
<releaseinfo> <releaseinfo>

View File

@ -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 C API and adds automatic reference counting, exceptions, operator
overloads, and automatic constant expansion. overloads, and automatic constant expansion.
The documentation for this API is in a [different part of the See the
website](https://libvips.github.io/libvips/API/current/cpp). <ulink url="https://libvips.github.io/libvips/API/8.11/cpp">
C++ API documentation</ulink>
for more details.

View File

@ -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. 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.
</para> </para>
<para> <para>
The documentation for this API is in a <link xlink:href="https://libvips.github.io/libvips/API/current/cpp">different part of the website</link>. See the <ulink url="https://libvips.github.io/libvips/API/8.11/cpp"> C++ API documentation</ulink> for more details.
</para> </para>

0
doc/libvips.actions Normal file
View File