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>
</refnamediv>
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)
<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.
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)
<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. 19--28.

View File

@ -11,10 +11,10 @@
<refnamediv> <refname>Cite</refname> <refpurpose>References to cite for libvips</refpurpose> </refnamediv>
</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>
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>

View File

@ -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 <ulink url="libvips-draw.html">draw
operators</ulink>.
# 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.
</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>
</refsect3>
<refsect3 xml:id="random-access-via-load-library">

View File

@ -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
<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 "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 <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.
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 <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.
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 <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.
**Snip**

View File

@ -98,7 +98,7 @@ g_object_unref( region );
<emphasis role="strong">Run-time code generation</emphasis>
</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>
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>
</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>
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.
</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>
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>
<emphasis role="strong">Snip</emphasis>

View File

@ -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 = \

View File

@ -9,11 +9,12 @@
<refpurpose>How to use libvips to make image pyramids</refpurpose>
</refnamediv>
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 <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. 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 <ulink url="http://leafletjs.com">Leaflet</ulink>. For
example:
```
$ 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>
</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>
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">
<title>Writing <link xlink:href="https://developers.google.com/maps/">Google Maps</link> pyramids</title>
<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>
<programlisting>
$ 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'">
]>
<book id="index">
<book id="index" xmlns:xlink="http://www.w3.org/1999/xlink">
<bookinfo>
<title>libvips Reference Manual</title>
<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
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
<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.
</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>

0
doc/libvips.actions Normal file
View File