~ubuntu-branches/ubuntu/utopic/vips/utopic-proposed

« back to all changes in this revision

Viewing changes to doc/reference/html/VipsInterpolate.html

  • Committer: Package Import Robot
  • Author(s): Jay Berkenbilt
  • Date: 2014-06-21 16:35:51 UTC
  • mfrom: (1.2.23)
  • Revision ID: package-import@ubuntu.com-20140621163551-l7mq3sjc5pkf94eu
Tags: 7.38.6-1
* New upstream version.
* Remove no-longer-needed dependency on gcc 4.7 for armhf. (Closes:
  #748006)
* Upstream version includes new German transltion. (Closes: #743613)

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
<html>
3
3
<head>
4
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
 
<title>VipsInterpolate</title>
 
5
<title>VIPS Reference Manual: VipsInterpolate</title>
6
6
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7
7
<link rel="home" href="index.html" title="VIPS Reference Manual">
8
8
<link rel="up" href="ch02.html" title="VIPS operation API by section">
9
9
<link rel="prev" href="libvips-inplace.html" title="inplace">
10
10
<link rel="next" href="libvips-morphology.html" title="morphology">
11
 
<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 
11
<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
12
12
<link rel="stylesheet" href="style.css" type="text/css">
13
13
</head>
14
14
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15
 
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16
 
<tr valign="middle">
17
 
<td><a accesskey="p" href="libvips-inplace.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18
 
<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19
 
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20
 
<th width="100%" align="center">VIPS Reference Manual</th>
21
 
<td><a accesskey="n" href="libvips-morphology.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22
 
</tr>
23
 
<tr><td colspan="5" class="shortcuts">
24
 
<a href="#VipsInterpolate.synopsis" class="shortcut">Top</a>
25
 
                   | 
26
 
                  <a href="#VipsInterpolate.description" class="shortcut">Description</a>
27
 
                   | 
28
 
                  <a href="#VipsInterpolate.object-hierarchy" class="shortcut">Object Hierarchy</a>
29
 
</td></tr>
30
 
</table>
 
15
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 
16
<td width="100%" align="left" class="shortcuts">
 
17
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
 
18
                  <a href="#VipsInterpolate.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
 
19
                  <a href="#VipsInterpolate.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 
20
</td>
 
21
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 
22
<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 
23
<td><a accesskey="p" href="libvips-inplace.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 
24
<td><a accesskey="n" href="libvips-morphology.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 
25
</tr></table>
31
26
<div class="refentry">
32
27
<a name="VipsInterpolate"></a><div class="titlepage"></div>
33
28
<div class="refnamediv"><table width="100%"><tr>
36
31
<p>VipsInterpolate — various interpolators: nearest, bilinear, and
37
32
some non-linear</p>
38
33
</td>
39
 
<td valign="top" align="right"></td>
 
34
<td class="gallery_image" valign="top" align="right"></td>
40
35
</tr></table></div>
41
36
<div class="refsect1">
42
37
<a name="VipsInterpolate.stability-level"></a><h2>Stability Level</h2>
43
38
Stable, unless otherwise indicated
44
39
</div>
45
 
<div class="refsynopsisdiv">
46
 
<a name="VipsInterpolate.synopsis"></a><h2>Synopsis</h2>
47
 
<pre class="synopsis">
48
 
#include &lt;vips/vips.h&gt;
49
 
 
50
 
                    <a class="link" href="VipsInterpolate.html#VipsInterpolate-struct" title="VipsInterpolate">VipsInterpolate</a>;
51
 
<span class="returnvalue">void</span>                (<a class="link" href="VipsInterpolate.html#VipsInterpolateMethod" title="VipsInterpolateMethod ()">*VipsInterpolateMethod</a>)            (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>,
52
 
                                                         <em class="parameter"><code><span class="type">void</span> *out</code></em>,
53
 
                                                         <em class="parameter"><code><a class="link" href="VipsRegion.html" title="VipsRegion"><span class="type">VipsRegion</span></a> *in</code></em>,
54
 
                                                         <em class="parameter"><code><span class="type">double</span> x</code></em>,
55
 
                                                         <em class="parameter"><code><span class="type">double</span> y</code></em>);
56
 
                    <a class="link" href="VipsInterpolate.html#VipsInterpolateClass" title="VipsInterpolateClass">VipsInterpolateClass</a>;
57
 
<span class="returnvalue">void</span>                <a class="link" href="VipsInterpolate.html#vips-interpolate" title="vips_interpolate ()">vips_interpolate</a>                    (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>,
58
 
                                                         <em class="parameter"><code><span class="type">void</span> *out</code></em>,
59
 
                                                         <em class="parameter"><code><a class="link" href="VipsRegion.html" title="VipsRegion"><span class="type">VipsRegion</span></a> *in</code></em>,
60
 
                                                         <em class="parameter"><code><span class="type">double</span> x</code></em>,
61
 
                                                         <em class="parameter"><code><span class="type">double</span> y</code></em>);
62
 
<a class="link" href="VipsInterpolate.html#VipsInterpolateMethod" title="VipsInterpolateMethod ()"><span class="returnvalue">VipsInterpolateMethod</span></a> <a class="link" href="VipsInterpolate.html#vips-interpolate-get-method" title="vips_interpolate_get_method ()">vips_interpolate_get_method</a>       (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>);
63
 
<span class="returnvalue">int</span>                 <a class="link" href="VipsInterpolate.html#vips-interpolate-get-window-size" title="vips_interpolate_get_window_size ()">vips_interpolate_get_window_size</a>    (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>);
64
 
<span class="returnvalue">int</span>                 <a class="link" href="VipsInterpolate.html#vips-interpolate-get-window-offset" title="vips_interpolate_get_window_offset ()">vips_interpolate_get_window_offset</a>  (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>);
65
 
#define             <a class="link" href="VipsInterpolate.html#VIPS-TRANSFORM-SHIFT:CAPS" title="VIPS_TRANSFORM_SHIFT">VIPS_TRANSFORM_SHIFT</a>
66
 
#define             <a class="link" href="VipsInterpolate.html#VIPS-TRANSFORM-SCALE:CAPS" title="VIPS_TRANSFORM_SCALE">VIPS_TRANSFORM_SCALE</a>
67
 
#define             <a class="link" href="VipsInterpolate.html#VIPS-INTERPOLATE-SHIFT:CAPS" title="VIPS_INTERPOLATE_SHIFT">VIPS_INTERPOLATE_SHIFT</a>
68
 
#define             <a class="link" href="VipsInterpolate.html#VIPS-INTERPOLATE-SCALE:CAPS" title="VIPS_INTERPOLATE_SCALE">VIPS_INTERPOLATE_SCALE</a>
69
 
<a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *   <a class="link" href="VipsInterpolate.html#vips-interpolate-nearest-static" title="vips_interpolate_nearest_static ()">vips_interpolate_nearest_static</a>     (<em class="parameter"><code><span class="type">void</span></code></em>);
70
 
<a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *   <a class="link" href="VipsInterpolate.html#vips-interpolate-bilinear-static" title="vips_interpolate_bilinear_static ()">vips_interpolate_bilinear_static</a>    (<em class="parameter"><code><span class="type">void</span></code></em>);
71
 
<a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *   <a class="link" href="VipsInterpolate.html#vips-interpolate-new" title="vips_interpolate_new ()">vips_interpolate_new</a>                (<em class="parameter"><code>const <span class="type">char</span> *nickname</code></em>);
72
 
</pre>
 
40
<div class="refsect1">
 
41
<a name="VipsInterpolate.functions"></a><h2>Functions</h2>
 
42
<div class="informaltable"><table width="100%" border="0">
 
43
<colgroup>
 
44
<col width="150px" class="functions_return">
 
45
<col class="functions_name">
 
46
</colgroup>
 
47
<tbody>
 
48
<tr>
 
49
<td class="function_type">
 
50
<span class="returnvalue">void</span>
 
51
</td>
 
52
<td class="function_name">
 
53
<span class="c_punctuation">(</span><a class="link" href="VipsInterpolate.html#VipsInterpolateMethod" title="VipsInterpolateMethod ()">*VipsInterpolateMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
 
54
</td>
 
55
</tr>
 
56
<tr>
 
57
<td class="function_type">
 
58
<span class="returnvalue">void</span>
 
59
</td>
 
60
<td class="function_name">
 
61
<a class="link" href="VipsInterpolate.html#vips-interpolate" title="vips_interpolate ()">vips_interpolate</a> <span class="c_punctuation">()</span>
 
62
</td>
 
63
</tr>
 
64
<tr>
 
65
<td class="function_type">
 
66
<a class="link" href="VipsInterpolate.html#VipsInterpolateMethod" title="VipsInterpolateMethod ()"><span class="returnvalue">VipsInterpolateMethod</span></a>
 
67
</td>
 
68
<td class="function_name">
 
69
<a class="link" href="VipsInterpolate.html#vips-interpolate-get-method" title="vips_interpolate_get_method ()">vips_interpolate_get_method</a> <span class="c_punctuation">()</span>
 
70
</td>
 
71
</tr>
 
72
<tr>
 
73
<td class="function_type">
 
74
<span class="returnvalue">int</span>
 
75
</td>
 
76
<td class="function_name">
 
77
<a class="link" href="VipsInterpolate.html#vips-interpolate-get-window-size" title="vips_interpolate_get_window_size ()">vips_interpolate_get_window_size</a> <span class="c_punctuation">()</span>
 
78
</td>
 
79
</tr>
 
80
<tr>
 
81
<td class="function_type">
 
82
<span class="returnvalue">int</span>
 
83
</td>
 
84
<td class="function_name">
 
85
<a class="link" href="VipsInterpolate.html#vips-interpolate-get-window-offset" title="vips_interpolate_get_window_offset ()">vips_interpolate_get_window_offset</a> <span class="c_punctuation">()</span>
 
86
</td>
 
87
</tr>
 
88
<tr>
 
89
<td class="define_keyword">#define</td>
 
90
<td class="function_name"><a class="link" href="VipsInterpolate.html#VIPS-TRANSFORM-SHIFT:CAPS" title="VIPS_TRANSFORM_SHIFT">VIPS_TRANSFORM_SHIFT</a></td>
 
91
</tr>
 
92
<tr>
 
93
<td class="define_keyword">#define</td>
 
94
<td class="function_name"><a class="link" href="VipsInterpolate.html#VIPS-TRANSFORM-SCALE:CAPS" title="VIPS_TRANSFORM_SCALE">VIPS_TRANSFORM_SCALE</a></td>
 
95
</tr>
 
96
<tr>
 
97
<td class="define_keyword">#define</td>
 
98
<td class="function_name"><a class="link" href="VipsInterpolate.html#VIPS-INTERPOLATE-SHIFT:CAPS" title="VIPS_INTERPOLATE_SHIFT">VIPS_INTERPOLATE_SHIFT</a></td>
 
99
</tr>
 
100
<tr>
 
101
<td class="define_keyword">#define</td>
 
102
<td class="function_name"><a class="link" href="VipsInterpolate.html#VIPS-INTERPOLATE-SCALE:CAPS" title="VIPS_INTERPOLATE_SCALE">VIPS_INTERPOLATE_SCALE</a></td>
 
103
</tr>
 
104
<tr>
 
105
<td class="function_type">
 
106
<a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *
 
107
</td>
 
108
<td class="function_name">
 
109
<a class="link" href="VipsInterpolate.html#vips-interpolate-nearest-static" title="vips_interpolate_nearest_static ()">vips_interpolate_nearest_static</a> <span class="c_punctuation">()</span>
 
110
</td>
 
111
</tr>
 
112
<tr>
 
113
<td class="function_type">
 
114
<a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *
 
115
</td>
 
116
<td class="function_name">
 
117
<a class="link" href="VipsInterpolate.html#vips-interpolate-bilinear-static" title="vips_interpolate_bilinear_static ()">vips_interpolate_bilinear_static</a> <span class="c_punctuation">()</span>
 
118
</td>
 
119
</tr>
 
120
<tr>
 
121
<td class="function_type">
 
122
<a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *
 
123
</td>
 
124
<td class="function_name">
 
125
<a class="link" href="VipsInterpolate.html#vips-interpolate-new" title="vips_interpolate_new ()">vips_interpolate_new</a> <span class="c_punctuation">()</span>
 
126
</td>
 
127
</tr>
 
128
</tbody>
 
129
</table></div>
73
130
</div>
74
131
<div class="refsect1">
75
132
<a name="VipsInterpolate.object-hierarchy"></a><h2>Object Hierarchy</h2>
76
 
<pre class="synopsis">
77
 
  GObject
78
 
   +----<a class="link" href="libvips-VipsArgument.html#VipsObject">VipsObject</a>
79
 
         +----VipsInterpolate
 
133
<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
 
134
    <span class="lineart">╰──</span> <a class="link" href="VipsObject.html" title="VipsObject">VipsObject</a>
 
135
        <span class="lineart">╰──</span> VipsInterpolate
 
136
</pre>
 
137
</div>
 
138
<div class="refsect1">
 
139
<a name="VipsInterpolate.includes"></a><h2>Includes</h2>
 
140
<pre class="synopsis">#include &lt;vips/vips.h&gt;
80
141
</pre>
81
142
</div>
82
143
<div class="refsect1">
83
144
<a name="VipsInterpolate.description"></a><h2>Description</h2>
84
 
<p>
85
 
A number of image interpolators.
86
 
</p>
 
145
<p>A number of image interpolators.</p>
87
146
</div>
88
147
<div class="refsect1">
89
 
<a name="VipsInterpolate.details"></a><h2>Details</h2>
90
 
<div class="refsect2">
91
 
<a name="VipsInterpolate-struct"></a><h3>VipsInterpolate</h3>
92
 
<pre class="programlisting">typedef struct _VipsInterpolate VipsInterpolate;</pre>
93
 
<p>
94
 
</p>
95
 
</div>
96
 
<hr>
97
 
<div class="refsect2">
98
 
<a name="VipsInterpolateMethod"></a><h3>VipsInterpolateMethod ()</h3>
99
 
<pre class="programlisting"><span class="returnvalue">void</span>                (*VipsInterpolateMethod)            (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>,
100
 
                                                         <em class="parameter"><code><span class="type">void</span> *out</code></em>,
101
 
                                                         <em class="parameter"><code><a class="link" href="VipsRegion.html" title="VipsRegion"><span class="type">VipsRegion</span></a> *in</code></em>,
102
 
                                                         <em class="parameter"><code><span class="type">double</span> x</code></em>,
103
 
                                                         <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
104
 
<p>
105
 
An interpolation function. It should read source pixels from <em class="parameter"><code>in</code></em> with
 
148
<a name="VipsInterpolate.functions_details"></a><h2>Functions</h2>
 
149
<div class="refsect2">
 
150
<a name="VipsInterpolateMethod"></a><h3>VipsInterpolateMethod ()</h3>
 
151
<pre class="programlisting"><span class="returnvalue">void</span>
 
152
<span class="c_punctuation">(</span>*VipsInterpolateMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>,
 
153
                          <em class="parameter"><code><span class="type">void</span> *out</code></em>,
 
154
                          <em class="parameter"><code><a class="link" href="VipsRegion.html" title="VipsRegion"><span class="type">VipsRegion</span></a> *in</code></em>,
 
155
                          <em class="parameter"><code><span class="type">double</span> x</code></em>,
 
156
                          <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
 
157
<p>An interpolation function. It should read source pixels from <em class="parameter"><code>in</code></em>
 
158
 with
106
159
<a class="link" href="VipsRegion.html#VIPS-REGION-ADDR:CAPS" title="VIPS_REGION_ADDR()"><code class="function">VIPS_REGION_ADDR()</code></a>, it can look left and up from (x, y) by <em class="parameter"><code>window_offset</code></em>
107
 
pixels and it can access pixels in a window of size <em class="parameter"><code>window_size</code></em>.
108
 
</p>
109
 
<p>
110
 
The interpolated value should be written to the pixel pointed to by <em class="parameter"><code>out</code></em>.
111
 
</p>
112
 
<p>
113
 
See also: <a class="link" href="VipsInterpolate.html#VipsInterpolateClass" title="VipsInterpolateClass"><span class="type">VipsInterpolateClass</span></a>.
114
 
</p>
115
 
<div class="variablelist"><table border="0" class="variablelist">
116
 
<colgroup>
117
 
<col align="left" valign="top">
118
 
<col>
119
 
</colgroup>
120
 
<tbody>
121
 
<tr>
122
 
<td><p><span class="term"><em class="parameter"><code>interpolate</code></em> :</span></p></td>
123
 
<td>the interpolator</td>
124
 
</tr>
125
 
<tr>
126
 
<td><p><span class="term"><em class="parameter"><code>out</code></em> :</span></p></td>
127
 
<td>write the interpolated pixel here</td>
128
 
</tr>
129
 
<tr>
130
 
<td><p><span class="term"><em class="parameter"><code>in</code></em> :</span></p></td>
131
 
<td>read source pixels from here</td>
132
 
</tr>
133
 
<tr>
134
 
<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
135
 
<td>interpolate value at this position</td>
136
 
</tr>
137
 
<tr>
138
 
<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
139
 
<td>interpolate value at this position</td>
140
 
</tr>
141
 
</tbody>
142
 
</table></div>
143
 
</div>
144
 
<hr>
145
 
<div class="refsect2">
146
 
<a name="VipsInterpolateClass"></a><h3>VipsInterpolateClass</h3>
147
 
<pre class="programlisting">typedef struct {
148
 
        VipsObjectClass parent_class;
149
 
 
150
 
        /* Write to pixel out(x,y), interpolating from in(x,y). The caller has
151
 
         * to set the regions up.
152
 
         */
153
 
        VipsInterpolateMethod interpolate;
154
 
 
155
 
        /* This interpolator needs a window this many pixels across and down.
156
 
         */
157
 
        int (*get_window_size)( VipsInterpolate * );
158
 
 
159
 
        /* Or just set this if you want a constant.
160
 
         */
161
 
        int window_size;
162
 
 
163
 
        /* Stencils are offset by this much. Default to window_size / 2 - 1
164
 
         * (centering) if get_window_offset is NULL and window_offset is -1.
165
 
         */
166
 
        int (*get_window_offset)( VipsInterpolate * );
167
 
        int window_offset;
168
 
} VipsInterpolateClass;
169
 
</pre>
170
 
<p>
171
 
The abstract base class for the various VIPS interpolation functions. 
172
 
Use "vips --list classes" to see all the interpolators available.
173
 
</p>
174
 
<p>
175
 
An interpolator consists of a function to perform the interpolation, plus
176
 
some extra data fields which tell vips how to call the function and what
177
 
data it needs.
178
 
</p>
179
 
<p>
180
 
<em class="parameter"><code>window_size</code></em> is the size of the window that the interpolator needs. For
181
 
example, a bicubic interpolator needs to see a window of 4x4 pixels to be
182
 
able to interpolate a value. 
183
 
</p>
184
 
<p>
185
 
You can either have a function in <em class="parameter"><code>get_window_size</code></em> which returns the window
186
 
that a specific interpolator needs, or you can leave <em class="parameter"><code>get_window_size</code></em> <code class="literal">NULL</code>
187
 
and set a constant value in <em class="parameter"><code>window_size</code></em>.
188
 
</p>
189
 
<p>
190
 
<em class="parameter"><code>window_offset</code></em> is how much to offset the window up and left of (x, y). For
191
 
example, a bicubic interpolator will want a <em class="parameter"><code>window_offset</code></em> of 1.
192
 
</p>
193
 
<p>
194
 
You can either have a function in <em class="parameter"><code>get_window_offset</code></em> which returns the
195
 
offset that a specific interpolator needs, or you can leave
196
 
<em class="parameter"><code>get_window_offset</code></em> <code class="literal">NULL</code> and set a constant value in <em class="parameter"><code>window_offset</code></em>.
197
 
</p>
198
 
<p>
199
 
You also need to set <em class="parameter"><code>nickname</code></em> and <em class="parameter"><code>description</code></em> in <a class="link" href="libvips-VipsArgument.html#VipsObject"><span class="type">VipsObject</span></a>.
200
 
</p>
201
 
<p>
202
 
See also: <a class="link" href="VipsInterpolate.html#VipsInterpolateMethod" title="VipsInterpolateMethod ()"><span class="type">VipsInterpolateMethod</span></a>, <a class="link" href="libvips-VipsArgument.html#VipsObject"><span class="type">VipsObject</span></a>, 
203
 
<a class="link" href="VipsInterpolate.html#vips-interpolate-bilinear-static" title="vips_interpolate_bilinear_static ()"><code class="function">vips_interpolate_bilinear_static()</code></a>.
204
 
</p>
205
 
<div class="variablelist"><table border="0" class="variablelist">
206
 
<colgroup>
207
 
<col align="left" valign="top">
208
 
<col>
209
 
</colgroup>
210
 
<tbody>
211
 
<tr>
212
 
<td><p><span class="term"><a class="link" href="libvips-VipsArgument.html#VipsObjectClass" title="struct VipsObjectClass"><span class="type">VipsObjectClass</span></a> <em class="structfield"><code><a name="VipsInterpolateClass.parent-class"></a>parent_class</code></em>;</span></p></td>
213
 
<td></td>
214
 
</tr>
215
 
<tr>
216
 
<td><p><span class="term"><a class="link" href="VipsInterpolate.html#VipsInterpolateMethod" title="VipsInterpolateMethod ()"><span class="type">VipsInterpolateMethod</span></a> <em class="structfield"><code><a name="VipsInterpolateClass.interpolate"></a>interpolate</code></em>;</span></p></td>
217
 
<td>the interpolation method</td>
218
 
</tr>
219
 
<tr>
220
 
<td><p><span class="term"><em class="structfield"><code><a name="VipsInterpolateClass.get-window-size"></a>get_window_size</code></em> ()</span></p></td>
221
 
<td>return the size of the window needed by this method</td>
222
 
</tr>
223
 
<tr>
224
 
<td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="VipsInterpolateClass.window-size"></a>window_size</code></em>;</span></p></td>
225
 
<td>or just set this for a constant window size</td>
226
 
</tr>
227
 
<tr>
228
 
<td><p><span class="term"><em class="structfield"><code><a name="VipsInterpolateClass.get-window-offset"></a>get_window_offset</code></em> ()</span></p></td>
229
 
<td>return the window offset for this method</td>
230
 
</tr>
231
 
<tr>
232
 
<td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="VipsInterpolateClass.window-offset"></a>window_offset</code></em>;</span></p></td>
233
 
<td>or just set this for a constant window offset</td>
234
 
</tr>
235
 
</tbody>
236
 
</table></div>
237
 
</div>
238
 
<hr>
239
 
<div class="refsect2">
240
 
<a name="vips-interpolate"></a><h3>vips_interpolate ()</h3>
241
 
<pre class="programlisting"><span class="returnvalue">void</span>                vips_interpolate                    (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>,
242
 
                                                         <em class="parameter"><code><span class="type">void</span> *out</code></em>,
243
 
                                                         <em class="parameter"><code><a class="link" href="VipsRegion.html" title="VipsRegion"><span class="type">VipsRegion</span></a> *in</code></em>,
244
 
                                                         <em class="parameter"><code><span class="type">double</span> x</code></em>,
245
 
                                                         <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
246
 
<p>
247
 
Look up the <em class="parameter"><code>interpolate</code></em> method in the class and call it. Use
248
 
<a class="link" href="VipsInterpolate.html#vips-interpolate-get-method" title="vips_interpolate_get_method ()"><code class="function">vips_interpolate_get_method()</code></a> to get a direct pointer to the function and
249
 
avoid the lookup overhead.
250
 
</p>
251
 
<p>
252
 
You need to set <em class="parameter"><code>in</code></em> and <em class="parameter"><code>out</code></em> up correctly.
253
 
</p>
254
 
<div class="variablelist"><table border="0" class="variablelist">
255
 
<colgroup>
256
 
<col align="left" valign="top">
257
 
<col>
258
 
</colgroup>
259
 
<tbody>
260
 
<tr>
261
 
<td><p><span class="term"><em class="parameter"><code>interpolate</code></em> :</span></p></td>
262
 
<td>interpolator to use</td>
263
 
</tr>
264
 
<tr>
265
 
<td><p><span class="term"><em class="parameter"><code>out</code></em> :</span></p></td>
266
 
<td>write result here</td>
267
 
</tr>
268
 
<tr>
269
 
<td><p><span class="term"><em class="parameter"><code>in</code></em> :</span></p></td>
270
 
<td>read source data from here</td>
271
 
</tr>
272
 
<tr>
273
 
<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
274
 
<td>interpolate value at this position</td>
275
 
</tr>
276
 
<tr>
277
 
<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
278
 
<td>interpolate value at this position</td>
279
 
</tr>
280
 
</tbody>
281
 
</table></div>
282
 
</div>
283
 
<hr>
284
 
<div class="refsect2">
285
 
<a name="vips-interpolate-get-method"></a><h3>vips_interpolate_get_method ()</h3>
286
 
<pre class="programlisting"><a class="link" href="VipsInterpolate.html#VipsInterpolateMethod" title="VipsInterpolateMethod ()"><span class="returnvalue">VipsInterpolateMethod</span></a> vips_interpolate_get_method       (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>);</pre>
287
 
<p>
288
 
Look up the <em class="parameter"><code>interpolate</code></em> method in the class and return it. Use this
289
 
instead of <a class="link" href="VipsInterpolate.html#vips-interpolate" title="vips_interpolate ()"><code class="function">vips_interpolate()</code></a> to cache method dispatch.
290
 
</p>
291
 
<div class="variablelist"><table border="0" class="variablelist">
292
 
<colgroup>
293
 
<col align="left" valign="top">
294
 
<col>
295
 
</colgroup>
296
 
<tbody>
297
 
<tr>
298
 
<td><p><span class="term"><em class="parameter"><code>interpolate</code></em> :</span></p></td>
299
 
<td>interpolator to use</td>
300
 
</tr>
301
 
<tr>
302
 
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
303
 
<td>a pointer to the interpolation function</td>
304
 
</tr>
305
 
</tbody>
306
 
</table></div>
307
 
</div>
308
 
<hr>
309
 
<div class="refsect2">
310
 
<a name="vips-interpolate-get-window-size"></a><h3>vips_interpolate_get_window_size ()</h3>
311
 
<pre class="programlisting"><span class="returnvalue">int</span>                 vips_interpolate_get_window_size    (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>);</pre>
312
 
<p>
313
 
Look up an interpolators desired window size.
314
 
</p>
315
 
<div class="variablelist"><table border="0" class="variablelist">
316
 
<colgroup>
317
 
<col align="left" valign="top">
318
 
<col>
319
 
</colgroup>
320
 
<tbody>
321
 
<tr>
322
 
<td><p><span class="term"><em class="parameter"><code>interpolate</code></em> :</span></p></td>
323
 
<td>interpolator to use</td>
324
 
</tr>
325
 
<tr>
326
 
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
327
 
<td>the interpolators required window size</td>
328
 
</tr>
329
 
</tbody>
330
 
</table></div>
331
 
</div>
332
 
<hr>
333
 
<div class="refsect2">
334
 
<a name="vips-interpolate-get-window-offset"></a><h3>vips_interpolate_get_window_offset ()</h3>
335
 
<pre class="programlisting"><span class="returnvalue">int</span>                 vips_interpolate_get_window_offset  (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>);</pre>
336
 
<p>
337
 
Look up an interpolators desired window offset.
338
 
</p>
339
 
<div class="variablelist"><table border="0" class="variablelist">
340
 
<colgroup>
341
 
<col align="left" valign="top">
342
 
<col>
343
 
</colgroup>
344
 
<tbody>
345
 
<tr>
346
 
<td><p><span class="term"><em class="parameter"><code>interpolate</code></em> :</span></p></td>
347
 
<td>interpolator to use</td>
348
 
</tr>
349
 
<tr>
350
 
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
351
 
<td>the interpolators required window offset</td>
352
 
</tr>
353
 
</tbody>
354
 
</table></div>
 
160
 
 
161
pixels and it can access pixels in a window of size <em class="parameter"><code>window_size</code></em>
 
162
.</p>
 
163
<p>The interpolated value should be written to the pixel pointed to by <em class="parameter"><code>out</code></em>
 
164
.</p>
 
165
<p>See also: <span class="type">VipsInterpolateClass</span>.</p>
 
166
<div class="refsect3">
 
167
<a name="id-1.3.10.8.2.7"></a><h4>Parameters</h4>
 
168
<div class="informaltable"><table width="100%" border="0">
 
169
<colgroup>
 
170
<col width="150px" class="parameters_name">
 
171
<col class="parameters_description">
 
172
<col width="200px" class="parameters_annotations">
 
173
</colgroup>
 
174
<tbody>
 
175
<tr>
 
176
<td class="parameter_name"><p>interpolate</p></td>
 
177
<td class="parameter_description"><p>the interpolator</p></td>
 
178
<td class="parameter_annotations"> </td>
 
179
</tr>
 
180
<tr>
 
181
<td class="parameter_name"><p>out</p></td>
 
182
<td class="parameter_description"><p>write the interpolated pixel here</p></td>
 
183
<td class="parameter_annotations"> </td>
 
184
</tr>
 
185
<tr>
 
186
<td class="parameter_name"><p>in</p></td>
 
187
<td class="parameter_description"><p>read source pixels from here</p></td>
 
188
<td class="parameter_annotations"> </td>
 
189
</tr>
 
190
<tr>
 
191
<td class="parameter_name"><p>x</p></td>
 
192
<td class="parameter_description"><p>interpolate value at this position</p></td>
 
193
<td class="parameter_annotations"> </td>
 
194
</tr>
 
195
<tr>
 
196
<td class="parameter_name"><p>y</p></td>
 
197
<td class="parameter_description"><p>interpolate value at this position</p></td>
 
198
<td class="parameter_annotations"> </td>
 
199
</tr>
 
200
</tbody>
 
201
</table></div>
 
202
</div>
 
203
</div>
 
204
<hr>
 
205
<div class="refsect2">
 
206
<a name="vips-interpolate"></a><h3>vips_interpolate ()</h3>
 
207
<pre class="programlisting"><span class="returnvalue">void</span>
 
208
vips_interpolate (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>,
 
209
                  <em class="parameter"><code><span class="type">void</span> *out</code></em>,
 
210
                  <em class="parameter"><code><a class="link" href="VipsRegion.html" title="VipsRegion"><span class="type">VipsRegion</span></a> *in</code></em>,
 
211
                  <em class="parameter"><code><span class="type">double</span> x</code></em>,
 
212
                  <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
 
213
<p>Look up the <em class="parameter"><code>interpolate</code></em>
 
214
 method in the class and call it. Use
 
215
<a class="link" href="VipsInterpolate.html#vips-interpolate-get-method" title="vips_interpolate_get_method ()"><code class="function">vips_interpolate_get_method()</code></a> to get a direct pointer to the function and
 
216
avoid the lookup overhead.</p>
 
217
<p>You need to set <em class="parameter"><code>in</code></em>
 
218
 and <em class="parameter"><code>out</code></em>
 
219
 up correctly.</p>
 
220
<div class="refsect3">
 
221
<a name="id-1.3.10.8.3.6"></a><h4>Parameters</h4>
 
222
<div class="informaltable"><table width="100%" border="0">
 
223
<colgroup>
 
224
<col width="150px" class="parameters_name">
 
225
<col class="parameters_description">
 
226
<col width="200px" class="parameters_annotations">
 
227
</colgroup>
 
228
<tbody>
 
229
<tr>
 
230
<td class="parameter_name"><p>interpolate</p></td>
 
231
<td class="parameter_description"><p>interpolator to use</p></td>
 
232
<td class="parameter_annotations"> </td>
 
233
</tr>
 
234
<tr>
 
235
<td class="parameter_name"><p>out</p></td>
 
236
<td class="parameter_description"><p>write result here</p></td>
 
237
<td class="parameter_annotations"> </td>
 
238
</tr>
 
239
<tr>
 
240
<td class="parameter_name"><p>in</p></td>
 
241
<td class="parameter_description"><p>read source data from here</p></td>
 
242
<td class="parameter_annotations"> </td>
 
243
</tr>
 
244
<tr>
 
245
<td class="parameter_name"><p>x</p></td>
 
246
<td class="parameter_description"><p>interpolate value at this position</p></td>
 
247
<td class="parameter_annotations"> </td>
 
248
</tr>
 
249
<tr>
 
250
<td class="parameter_name"><p>y</p></td>
 
251
<td class="parameter_description"><p>interpolate value at this position</p></td>
 
252
<td class="parameter_annotations"> </td>
 
253
</tr>
 
254
</tbody>
 
255
</table></div>
 
256
</div>
 
257
</div>
 
258
<hr>
 
259
<div class="refsect2">
 
260
<a name="vips-interpolate-get-method"></a><h3>vips_interpolate_get_method ()</h3>
 
261
<pre class="programlisting"><a class="link" href="VipsInterpolate.html#VipsInterpolateMethod" title="VipsInterpolateMethod ()"><span class="returnvalue">VipsInterpolateMethod</span></a>
 
262
vips_interpolate_get_method (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>);</pre>
 
263
<p>Look up the <em class="parameter"><code>interpolate</code></em>
 
264
 method in the class and return it. Use this
 
265
instead of <a class="link" href="VipsInterpolate.html#vips-interpolate" title="vips_interpolate ()"><code class="function">vips_interpolate()</code></a> to cache method dispatch.</p>
 
266
<div class="refsect3">
 
267
<a name="id-1.3.10.8.4.5"></a><h4>Parameters</h4>
 
268
<div class="informaltable"><table width="100%" border="0">
 
269
<colgroup>
 
270
<col width="150px" class="parameters_name">
 
271
<col class="parameters_description">
 
272
<col width="200px" class="parameters_annotations">
 
273
</colgroup>
 
274
<tbody><tr>
 
275
<td class="parameter_name"><p>interpolate</p></td>
 
276
<td class="parameter_description"><p>interpolator to use</p></td>
 
277
<td class="parameter_annotations"> </td>
 
278
</tr></tbody>
 
279
</table></div>
 
280
</div>
 
281
<div class="refsect3">
 
282
<a name="id-1.3.10.8.4.6"></a><h4>Returns</h4>
 
283
<p> a pointer to the interpolation function</p>
 
284
<p></p>
 
285
</div>
 
286
</div>
 
287
<hr>
 
288
<div class="refsect2">
 
289
<a name="vips-interpolate-get-window-size"></a><h3>vips_interpolate_get_window_size ()</h3>
 
290
<pre class="programlisting"><span class="returnvalue">int</span>
 
291
vips_interpolate_get_window_size (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>);</pre>
 
292
<p>Look up an interpolators desired window size.</p>
 
293
<div class="refsect3">
 
294
<a name="id-1.3.10.8.5.5"></a><h4>Parameters</h4>
 
295
<div class="informaltable"><table width="100%" border="0">
 
296
<colgroup>
 
297
<col width="150px" class="parameters_name">
 
298
<col class="parameters_description">
 
299
<col width="200px" class="parameters_annotations">
 
300
</colgroup>
 
301
<tbody><tr>
 
302
<td class="parameter_name"><p>interpolate</p></td>
 
303
<td class="parameter_description"><p>interpolator to use</p></td>
 
304
<td class="parameter_annotations"> </td>
 
305
</tr></tbody>
 
306
</table></div>
 
307
</div>
 
308
<div class="refsect3">
 
309
<a name="id-1.3.10.8.5.6"></a><h4>Returns</h4>
 
310
<p> the interpolators required window size</p>
 
311
<p></p>
 
312
</div>
 
313
</div>
 
314
<hr>
 
315
<div class="refsect2">
 
316
<a name="vips-interpolate-get-window-offset"></a><h3>vips_interpolate_get_window_offset ()</h3>
 
317
<pre class="programlisting"><span class="returnvalue">int</span>
 
318
vips_interpolate_get_window_offset (<em class="parameter"><code><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="type">VipsInterpolate</span></a> *interpolate</code></em>);</pre>
 
319
<p>Look up an interpolators desired window offset.</p>
 
320
<div class="refsect3">
 
321
<a name="id-1.3.10.8.6.5"></a><h4>Parameters</h4>
 
322
<div class="informaltable"><table width="100%" border="0">
 
323
<colgroup>
 
324
<col width="150px" class="parameters_name">
 
325
<col class="parameters_description">
 
326
<col width="200px" class="parameters_annotations">
 
327
</colgroup>
 
328
<tbody><tr>
 
329
<td class="parameter_name"><p>interpolate</p></td>
 
330
<td class="parameter_description"><p>interpolator to use</p></td>
 
331
<td class="parameter_annotations"> </td>
 
332
</tr></tbody>
 
333
</table></div>
 
334
</div>
 
335
<div class="refsect3">
 
336
<a name="id-1.3.10.8.6.6"></a><h4>Returns</h4>
 
337
<p> the interpolators required window offset</p>
 
338
<p></p>
 
339
</div>
355
340
</div>
356
341
<hr>
357
342
<div class="refsect2">
358
343
<a name="VIPS-TRANSFORM-SHIFT:CAPS"></a><h3>VIPS_TRANSFORM_SHIFT</h3>
359
344
<pre class="programlisting">#define VIPS_TRANSFORM_SHIFT (6)
360
345
</pre>
361
 
<p>
362
 
Many of the vips interpolators use fixed-point arithmetic for coordinate
363
 
calculation. This is how many bits of precision they use.
364
 
</p>
 
346
<p>Many of the vips interpolators use fixed-point arithmetic for coordinate
 
347
calculation. This is how many bits of precision they use.</p>
365
348
</div>
366
349
<hr>
367
350
<div class="refsect2">
368
351
<a name="VIPS-TRANSFORM-SCALE:CAPS"></a><h3>VIPS_TRANSFORM_SCALE</h3>
369
352
<pre class="programlisting">#define VIPS_TRANSFORM_SCALE (1 &lt;&lt; VIPS_TRANSFORM_SHIFT)
370
353
</pre>
371
 
<p>
372
 
<a class="link" href="VipsInterpolate.html#VIPS-TRANSFORM-SHIFT:CAPS" title="VIPS_TRANSFORM_SHIFT"><span class="type">VIPS_TRANSFORM_SHIFT</span></a> as a multiplicative constant.
373
 
</p>
 
354
<p><a class="link" href="VipsInterpolate.html#VIPS-TRANSFORM-SHIFT:CAPS" title="VIPS_TRANSFORM_SHIFT"><span class="type">VIPS_TRANSFORM_SHIFT</span></a> as a multiplicative constant.</p>
374
355
</div>
375
356
<hr>
376
357
<div class="refsect2">
377
358
<a name="VIPS-INTERPOLATE-SHIFT:CAPS"></a><h3>VIPS_INTERPOLATE_SHIFT</h3>
378
359
<pre class="programlisting">#define VIPS_INTERPOLATE_SHIFT (12)
379
360
</pre>
380
 
<p>
381
 
Many of the vips interpolators use fixed-point arithmetic for value
382
 
calcualtion. This is how many bits of precision they use.
383
 
</p>
 
361
<p>Many of the vips interpolators use fixed-point arithmetic for value
 
362
calcualtion. This is how many bits of precision they use.</p>
384
363
</div>
385
364
<hr>
386
365
<div class="refsect2">
387
366
<a name="VIPS-INTERPOLATE-SCALE:CAPS"></a><h3>VIPS_INTERPOLATE_SCALE</h3>
388
367
<pre class="programlisting">#define VIPS_INTERPOLATE_SCALE (1 &lt;&lt; VIPS_INTERPOLATE_SHIFT)
389
368
</pre>
390
 
<p>
391
 
<a class="link" href="VipsInterpolate.html#VIPS-INTERPOLATE-SHIFT:CAPS" title="VIPS_INTERPOLATE_SHIFT"><span class="type">VIPS_INTERPOLATE_SHIFT</span></a> as a multiplicative constant.
392
 
</p>
393
 
</div>
394
 
<hr>
395
 
<div class="refsect2">
396
 
<a name="vips-interpolate-nearest-static"></a><h3>vips_interpolate_nearest_static ()</h3>
397
 
<pre class="programlisting"><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *   vips_interpolate_nearest_static     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
398
 
<p>
399
 
A convenience function that returns a nearest-neighbour interpolator you 
400
 
don't need to free.
401
 
</p>
402
 
<div class="variablelist"><table border="0" class="variablelist">
403
 
<colgroup>
404
 
<col align="left" valign="top">
405
 
<col>
406
 
</colgroup>
407
 
<tbody><tr>
408
 
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
409
 
<td>a nearest-neighbour interpolator. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
410
 
</td>
411
 
</tr></tbody>
412
 
</table></div>
413
 
</div>
414
 
<hr>
415
 
<div class="refsect2">
416
 
<a name="vips-interpolate-bilinear-static"></a><h3>vips_interpolate_bilinear_static ()</h3>
417
 
<pre class="programlisting"><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *   vips_interpolate_bilinear_static    (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
418
 
<p>
419
 
A convenience function that returns a bilinear interpolator you 
420
 
don't need to free.
421
 
</p>
422
 
<div class="variablelist"><table border="0" class="variablelist">
423
 
<colgroup>
424
 
<col align="left" valign="top">
425
 
<col>
426
 
</colgroup>
427
 
<tbody><tr>
428
 
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
429
 
<td>a bilinear interpolator. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
430
 
</td>
431
 
</tr></tbody>
432
 
</table></div>
433
 
</div>
434
 
<hr>
435
 
<div class="refsect2">
436
 
<a name="vips-interpolate-new"></a><h3>vips_interpolate_new ()</h3>
437
 
<pre class="programlisting"><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *   vips_interpolate_new                (<em class="parameter"><code>const <span class="type">char</span> *nickname</code></em>);</pre>
438
 
<p>
439
 
Look up an interpolator from a nickname and make one. You need to free the
440
 
result with <code class="function">g_object_unref()</code> when you're done with it.
441
 
</p>
442
 
<p>
443
 
See also: <a class="link" href="libvips-VipsArgument.html#vips-type-find" title="vips_type_find ()"><code class="function">vips_type_find()</code></a>.
444
 
</p>
445
 
<div class="variablelist"><table border="0" class="variablelist">
446
 
<colgroup>
447
 
<col align="left" valign="top">
448
 
<col>
449
 
</colgroup>
450
 
<tbody>
451
 
<tr>
452
 
<td><p><span class="term"><em class="parameter"><code>nickname</code></em> :</span></p></td>
453
 
<td>nickname for interpolator</td>
454
 
</tr>
455
 
<tr>
456
 
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
457
 
<td>an interpolator, or <code class="literal">NULL</code> on error.</td>
458
 
</tr>
459
 
</tbody>
460
 
</table></div>
461
 
</div>
 
369
<p><a class="link" href="VipsInterpolate.html#VIPS-INTERPOLATE-SHIFT:CAPS" title="VIPS_INTERPOLATE_SHIFT"><span class="type">VIPS_INTERPOLATE_SHIFT</span></a> as a multiplicative constant.</p>
 
370
</div>
 
371
<hr>
 
372
<div class="refsect2">
 
373
<a name="vips-interpolate-nearest-static"></a><h3>vips_interpolate_nearest_static ()</h3>
 
374
<pre class="programlisting"><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *
 
375
vips_interpolate_nearest_static (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 
376
<p>A convenience function that returns a nearest-neighbour interpolator you 
 
377
don't need to free.</p>
 
378
<div class="refsect3">
 
379
<a name="id-1.3.10.8.11.5"></a><h4>Returns</h4>
 
380
<p> a nearest-neighbour interpolator. </p>
 
381
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 
382
</div>
 
383
</div>
 
384
<hr>
 
385
<div class="refsect2">
 
386
<a name="vips-interpolate-bilinear-static"></a><h3>vips_interpolate_bilinear_static ()</h3>
 
387
<pre class="programlisting"><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *
 
388
vips_interpolate_bilinear_static (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 
389
<p>A convenience function that returns a bilinear interpolator you 
 
390
don't need to free.</p>
 
391
<div class="refsect3">
 
392
<a name="id-1.3.10.8.12.5"></a><h4>Returns</h4>
 
393
<p> a bilinear interpolator. </p>
 
394
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 
395
</div>
 
396
</div>
 
397
<hr>
 
398
<div class="refsect2">
 
399
<a name="vips-interpolate-new"></a><h3>vips_interpolate_new ()</h3>
 
400
<pre class="programlisting"><a class="link" href="VipsInterpolate.html" title="VipsInterpolate"><span class="returnvalue">VipsInterpolate</span></a> *
 
401
vips_interpolate_new (<em class="parameter"><code>const <span class="type">char</span> *nickname</code></em>);</pre>
 
402
<p>Look up an interpolator from a nickname and make one. You need to free the
 
403
result with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> when you're done with it.</p>
 
404
<p>See also: <a class="link" href="VipsObject.html#vips-type-find" title="vips_type_find ()"><code class="function">vips_type_find()</code></a>.</p>
 
405
<div class="refsect3">
 
406
<a name="id-1.3.10.8.13.6"></a><h4>Parameters</h4>
 
407
<div class="informaltable"><table width="100%" border="0">
 
408
<colgroup>
 
409
<col width="150px" class="parameters_name">
 
410
<col class="parameters_description">
 
411
<col width="200px" class="parameters_annotations">
 
412
</colgroup>
 
413
<tbody><tr>
 
414
<td class="parameter_name"><p>nickname</p></td>
 
415
<td class="parameter_description"><p>nickname for interpolator</p></td>
 
416
<td class="parameter_annotations"> </td>
 
417
</tr></tbody>
 
418
</table></div>
 
419
</div>
 
420
<div class="refsect3">
 
421
<a name="id-1.3.10.8.13.7"></a><h4>Returns</h4>
 
422
<p> an interpolator, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error.</p>
 
423
<p></p>
 
424
</div>
 
425
</div>
 
426
</div>
 
427
<div class="refsect1">
 
428
<a name="VipsInterpolate.other_details"></a><h2>Types and Values</h2>
462
429
</div>
463
430
</div>
464
431
<div class="footer">
465
432
<hr>
466
 
          Generated by GTK-Doc V1.19</div>
 
433
          Generated by GTK-Doc V1.20</div>
467
434
</body>
468
435
</html>
 
 
b'\\ No newline at end of file'