ruby-vips 0.3.5 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +12 -12
- data/README.md +76 -13
- data/TODO +10 -0
- data/ext/image_conversion.c +1 -1
- data/ext/image_freq_filt.c +1 -1
- data/ext/image_histograms_lut.c +2 -2
- data/ext/reader.c +44 -0
- data/ext/ruby_vips.c +1 -1
- data/ext/ruby_vips.h +6 -0
- data/ext/tags +450 -0
- data/ext/writer.c +25 -4
- data/lib/vips/reader.rb +22 -3
- data/lib/vips/version.rb +1 -1
- data/ruby-vips.gemspec +4 -2
- metadata +8 -4
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# master
|
2
2
|
|
3
|
+
# Version 0.3.6
|
4
|
+
|
5
|
+
* add png and jpg load from memory buffer [John Cupitt]
|
6
|
+
* README updated to include buffer read/write example [John Cupitt]
|
7
|
+
* better vips version testing [John Cupitt]
|
8
|
+
* spec tests for new buffer read/write code [John Cupitt]
|
9
|
+
* fix rdoc build to include C sources [John Cupitt]
|
10
|
+
* better compat with older libvips [John Cupitt]
|
11
|
+
|
3
12
|
# Version 0.3.5
|
4
13
|
|
5
14
|
* rb_raise() in mask.c no longer passes a string pointer as the fmt arg, stopping gcc bailing out on some platforms [John Cupitt]
|
data/Gemfile.lock
CHANGED
@@ -1,25 +1,25 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
diff-lcs (1.
|
4
|
+
diff-lcs (1.2.4)
|
5
5
|
git (1.2.5)
|
6
6
|
jeweler (1.8.4)
|
7
7
|
bundler (~> 1.0)
|
8
8
|
git (>= 1.2.5)
|
9
9
|
rake
|
10
10
|
rdoc
|
11
|
-
json (1.
|
12
|
-
rake (
|
13
|
-
rdoc (3.12)
|
11
|
+
json (1.8.0)
|
12
|
+
rake (10.1.0)
|
13
|
+
rdoc (3.12.2)
|
14
14
|
json (~> 1.4)
|
15
|
-
rspec (2.
|
16
|
-
rspec-core (~> 2.
|
17
|
-
rspec-expectations (~> 2.
|
18
|
-
rspec-mocks (~> 2.
|
19
|
-
rspec-core (2.
|
20
|
-
rspec-expectations (2.
|
21
|
-
diff-lcs (
|
22
|
-
rspec-mocks (2.
|
15
|
+
rspec (2.13.0)
|
16
|
+
rspec-core (~> 2.13.0)
|
17
|
+
rspec-expectations (~> 2.13.0)
|
18
|
+
rspec-mocks (~> 2.13.0)
|
19
|
+
rspec-core (2.13.1)
|
20
|
+
rspec-expectations (2.13.0)
|
21
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
22
|
+
rspec-mocks (2.13.1)
|
23
23
|
|
24
24
|
PLATFORMS
|
25
25
|
ruby
|
data/README.md
CHANGED
@@ -43,7 +43,7 @@ latest libvips you can.
|
|
43
43
|
## Requirements.
|
44
44
|
|
45
45
|
* OS X or Linux
|
46
|
-
* MRI 1.8.7, 1.9.
|
46
|
+
* MRI 1.8.7, 1.9.3
|
47
47
|
* libvips 7.24 and later (it will work with earlier libvips, but some
|
48
48
|
features may not be functional)
|
49
49
|
|
@@ -58,18 +58,50 @@ $ apt-get install libvips-dev
|
|
58
58
|
### OS X Prerequisites.
|
59
59
|
|
60
60
|
```bash
|
61
|
-
$ brew
|
61
|
+
$ brew tap homebrew/science
|
62
|
+
$ brew install vips
|
62
63
|
```
|
63
64
|
|
64
|
-
|
65
|
-
|
65
|
+
This will give you a very bare-bones vips, missing things like imagemagick
|
66
|
+
loading, openslide support, FFTs, and so on. To get a list of all the optional
|
67
|
+
dependencies, try:
|
66
68
|
|
67
69
|
```bash
|
68
|
-
|
70
|
+
$ brew info vips
|
69
71
|
```
|
70
72
|
|
71
|
-
|
72
|
-
|
73
|
+
For a full-fat version, try:
|
74
|
+
|
75
|
+
```bash
|
76
|
+
$ brew install vips --with-cfitsio --with-fftw --with-imagemagick \
|
77
|
+
--with-libexif --with-liboil --with-libtiff --with-little-cms \
|
78
|
+
--with-openexr --with-openslide --with-pango
|
79
|
+
```
|
80
|
+
|
81
|
+
If you want to build things outside homebrew which depend on vips,
|
82
|
+
such as ruby-vips, your pkg-config will need to be working. You
|
83
|
+
need to point pkg-config at the homebrew area, and, additionally, at
|
84
|
+
homebrew's libxml2 area:
|
85
|
+
|
86
|
+
In your .profile, add something like:
|
87
|
+
|
88
|
+
```bash
|
89
|
+
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig
|
90
|
+
```
|
91
|
+
|
92
|
+
To verify that your vips install is correct and working, try:
|
93
|
+
|
94
|
+
```bash
|
95
|
+
$ vips --version
|
96
|
+
vips-7.32.1-Mon May 20 10:01:38 BST 2013
|
97
|
+
```
|
98
|
+
|
99
|
+
To verrify that your pkg-config is working correctly with vips, try:
|
100
|
+
|
101
|
+
```bash
|
102
|
+
$ pkg-config vips --libs
|
103
|
+
-L/usr/local/Cellar/vips/7.32.1/lib ... a lot of stuff
|
104
|
+
```
|
73
105
|
|
74
106
|
TODO: Describe & test with macports.
|
75
107
|
|
@@ -84,18 +116,18 @@ platforms](https://github.com/jcupitt/ruby-vips/wiki/installation-on-various-pla
|
|
84
116
|
$ gem install ruby-vips
|
85
117
|
```
|
86
118
|
|
87
|
-
Alternatively, for a debug build:
|
88
|
-
|
89
|
-
```bash
|
90
|
-
$ gem install ruby-vips -- --enable-debug
|
91
|
-
```
|
92
|
-
|
93
119
|
or include it in Gemfile:
|
94
120
|
|
95
121
|
```ruby
|
96
122
|
gem 'ruby-vips'
|
97
123
|
```
|
98
124
|
|
125
|
+
For a debug build:
|
126
|
+
|
127
|
+
```bash
|
128
|
+
$ gem install ruby-vips -- --enable-debug
|
129
|
+
```
|
130
|
+
|
99
131
|
## Documentation.
|
100
132
|
|
101
133
|
ruby-vips has [rdoc
|
@@ -153,6 +185,37 @@ Image.jpeg('large.png', :sequential => true).shrink(2).png('out.png')
|
|
153
185
|
# If you want to let vips determine file formats, you can use the generic
|
154
186
|
# reader and writer:
|
155
187
|
Image.new('mypic.jpg').shrink(2).write('out.png')
|
188
|
+
|
189
|
+
# You can also read and write images from memory areas. For example:
|
190
|
+
|
191
|
+
jpeg_data = IO.read('mypic.jpg')
|
192
|
+
reader = JPEGReader.new(jpeg_data, :shrink_factor => 2, :fail_on_warn => true)
|
193
|
+
im = reader.read_buffer
|
194
|
+
|
195
|
+
# As above, the image will not be processed until the .to_memory() method
|
196
|
+
# is called, and then will only decompress the section being processed.
|
197
|
+
# You will need to have all of the compressed data in memory at once though.
|
198
|
+
|
199
|
+
# Note that this means you will get a coredump if you free the compressed
|
200
|
+
# image buffer (jpeg_data above) before the write has completed.
|
201
|
+
|
202
|
+
writer = PNGWriter.new(im, :compression => 2, :interlace => false)
|
203
|
+
png_data = writer.to_memory
|
204
|
+
IO.write('out.png', png_data)
|
205
|
+
|
206
|
+
# Only JPEG, PNG and uncompressed memory images are supported at the moment,
|
207
|
+
# and png memory read is only in vips-7.34 and later.
|
208
|
+
|
209
|
+
# We hope to add other formats in future.
|
210
|
+
|
211
|
+
png_data = IO.read('mypic.png')
|
212
|
+
reader = PNGReader.new(png_data)
|
213
|
+
im = reader.read_buffer
|
214
|
+
|
215
|
+
writer = JPEGWriter.new(im, :quality => 50)
|
216
|
+
jpeg_data = writer.to_memory
|
217
|
+
IO.write('out.jpg', jpeg_data)
|
218
|
+
|
156
219
|
```
|
157
220
|
|
158
221
|
## Why use ruby-vips?
|
data/TODO
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
btw, there's a method called to_memory in JPEGWriter and PNGWriter, that works
|
2
|
+
cool to retrieve the VIPS::Image as a memory buffer, will be cool if this
|
3
|
+
method is moved up to Writer and then it handles the correct to_memory method
|
4
|
+
using the image headers.
|
5
|
+
|
6
|
+
add from_memory? or should the open method accept a blob in place of a path?
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
|
1
11
|
TODO
|
2
12
|
* Verify that all memory gets released when vips ops return errors. Namely,
|
3
13
|
make sure that the allocated IMAGEs get released via ruby's free callbacks.
|
data/ext/image_conversion.c
CHANGED
data/ext/image_freq_filt.c
CHANGED
data/ext/image_histograms_lut.c
CHANGED
@@ -427,7 +427,7 @@ img_gammacorrect(VALUE obj, VALUE exponent)
|
|
427
427
|
VALUE
|
428
428
|
img_mpercent_hist(VALUE obj, VALUE percent)
|
429
429
|
{
|
430
|
-
#if
|
430
|
+
#if ATLEAST_VIPS( 7, 22 )
|
431
431
|
int ret;
|
432
432
|
GetImg(obj, data, im);
|
433
433
|
|
@@ -627,7 +627,7 @@ VALUE
|
|
627
627
|
img_tone_analyse(VALUE obj,
|
628
628
|
VALUE ps, VALUE pm, VALUE ph, VALUE s, VALUE m, VALUE h)
|
629
629
|
{
|
630
|
-
#if
|
630
|
+
#if ATLEAST_VIPS( 7, 23 )
|
631
631
|
GetImg(obj, data, im);
|
632
632
|
OutImg(obj, new, data_new, im_new);
|
633
633
|
|
data/ext/reader.c
CHANGED
@@ -51,6 +51,48 @@ reader_read_internal(VALUE obj, VALUE path, VALUE flags)
|
|
51
51
|
return img_init(cVIPSImage, im_new);
|
52
52
|
}
|
53
53
|
|
54
|
+
static VALUE
|
55
|
+
jpeg_buf_internal(VALUE obj, VALUE buf, VALUE shrink, VALUE fail)
|
56
|
+
{
|
57
|
+
VipsImage *im_new;
|
58
|
+
|
59
|
+
im_new = NULL;
|
60
|
+
|
61
|
+
#if ATLEAST_VIPS( 7, 28 )
|
62
|
+
buf = StringValue(buf);
|
63
|
+
|
64
|
+
if (vips_jpegload_buffer(RSTRING_PTR(buf), RSTRING_LEN(buf), &im_new,
|
65
|
+
"shrink", NUM2INT(shrink),
|
66
|
+
"fail", NUM2INT(fail),
|
67
|
+
NULL))
|
68
|
+
vips_lib_error();
|
69
|
+
#else
|
70
|
+
rb_raise(eVIPSError, "This method is not implemented in your version of VIPS");
|
71
|
+
#endif
|
72
|
+
|
73
|
+
return img_init(cVIPSImage, im_new);
|
74
|
+
}
|
75
|
+
|
76
|
+
static VALUE
|
77
|
+
png_buf_internal(VALUE obj, VALUE buf)
|
78
|
+
{
|
79
|
+
VipsImage *im_new;
|
80
|
+
|
81
|
+
im_new = NULL;
|
82
|
+
|
83
|
+
#if ATLEAST_VIPS( 7, 34 )
|
84
|
+
buf = StringValue(buf);
|
85
|
+
|
86
|
+
if (vips_pngload_buffer(RSTRING_PTR(buf), RSTRING_LEN(buf), &im_new,
|
87
|
+
NULL))
|
88
|
+
vips_lib_error();
|
89
|
+
#else
|
90
|
+
rb_raise(eVIPSError, "This method is not implemented in your version of VIPS");
|
91
|
+
#endif
|
92
|
+
|
93
|
+
return img_init(cVIPSImage, im_new);
|
94
|
+
}
|
95
|
+
|
54
96
|
/* :nodoc: */
|
55
97
|
|
56
98
|
static VALUE
|
@@ -118,6 +160,7 @@ init_Reader(void)
|
|
118
160
|
*/
|
119
161
|
|
120
162
|
VALUE jpeg_reader = rb_define_class_under(mVIPS, "JPEGReader", reader);
|
163
|
+
rb_define_private_method(jpeg_reader, "buf_internal", jpeg_buf_internal, 3);
|
121
164
|
reader_fmt_set(jpeg_reader, "jpeg");
|
122
165
|
|
123
166
|
/*
|
@@ -139,6 +182,7 @@ init_Reader(void)
|
|
139
182
|
*/
|
140
183
|
|
141
184
|
VALUE png_reader = rb_define_class_under(mVIPS, "PNGReader", reader);
|
185
|
+
rb_define_private_method(png_reader, "buf_internal", png_buf_internal, 1);
|
142
186
|
reader_fmt_set(png_reader, "png");
|
143
187
|
|
144
188
|
/*
|
data/ext/ruby_vips.c
CHANGED
@@ -127,10 +127,10 @@ init_vips_library()
|
|
127
127
|
xfree(argv);
|
128
128
|
}
|
129
129
|
|
130
|
+
#if ATLEAST_VIPS( 7, 28 )
|
130
131
|
/* We use the vips7 interface, so the vips8 cache will not help us.
|
131
132
|
* Disable it and save 100mb or so of memory in vips-7.28 and later.
|
132
133
|
*/
|
133
|
-
#if IM_MAJOR_VERSION >= 7 && IM_MINOR_VERSION >= 28
|
134
134
|
vips_cache_set_max_mem( 0 );
|
135
135
|
#endif
|
136
136
|
}
|
data/ext/ruby_vips.h
CHANGED
@@ -13,6 +13,12 @@ void vips_lib_error();
|
|
13
13
|
# define __attribute__(x) /*NOTHING*/
|
14
14
|
#endif
|
15
15
|
|
16
|
+
/* Vips lib version testing. This will not work if MINOR gets over 100,
|
17
|
+
* obviously.
|
18
|
+
*/
|
19
|
+
#define ATLEAST_VIPS( MAJOR, MINOR ) \
|
20
|
+
(IM_MAJOR_VERSION * 100 + IM_MINOR_VERSION >= MAJOR * 100 + MINOR)
|
21
|
+
|
16
22
|
/* Backports from ruby 1.9.2 for ruby 1.8.7
|
17
23
|
*/
|
18
24
|
|
data/ext/tags
ADDED
@@ -0,0 +1,450 @@
|
|
1
|
+
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
|
2
|
+
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
|
3
|
+
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
|
4
|
+
!_TAG_PROGRAM_NAME Exuberant Ctags //
|
5
|
+
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
|
6
|
+
!_TAG_PROGRAM_VERSION 5.9~svn20110310 //
|
7
|
+
CGETPIX image.c 241;" d file:
|
8
|
+
DBL2NUM ruby_vips.h 20;" d
|
9
|
+
GETPIX image.c 228;" d file:
|
10
|
+
GetImg image.h 26;" d
|
11
|
+
Init_vips_ext ruby_vips.c /^Init_vips_ext()$/;" f
|
12
|
+
NEED_ruby_vips_class_map_all ruby_vips.h 45;" d
|
13
|
+
OutImg image.h 32;" d
|
14
|
+
OutImg2 image.h 36;" d
|
15
|
+
OutImg3 image.h 40;" d
|
16
|
+
OutPartial image.h 44;" d
|
17
|
+
RARRAY_LENINT ruby_vips.h 24;" d
|
18
|
+
RUBY_VIPS_BINARY image.h 59;" d
|
19
|
+
RUBY_VIPS_H ruby_vips.h 2;" d
|
20
|
+
RUBY_VIPS_HEADER_H header.h 2;" d
|
21
|
+
RUBY_VIPS_IMAGE_H image.h 2;" d
|
22
|
+
RUBY_VIPS_INTERPOLATOR_H interpolator.h 2;" d
|
23
|
+
RUBY_VIPS_MASK_H mask.h 2;" d
|
24
|
+
RUBY_VIPS_UNARY image.h 48;" d
|
25
|
+
__attribute__ ruby_vips.h 13;" d
|
26
|
+
_vipsImg image.h /^struct _vipsImg {$/;" s
|
27
|
+
_vipsMask mask.h /^struct _vipsMask {$/;" s
|
28
|
+
ary_is_int_2d mask.c /^ary_is_int_2d(VALUE ary)$/;" f file:
|
29
|
+
cVIPSImage image.c /^VALUE cVIPSImage;$/;" v
|
30
|
+
cVIPSInterpolator interpolator.c /^static VALUE cVIPSInterpolator;$/;" v file:
|
31
|
+
cVIPSMask mask.c /^VALUE cVIPSMask;$/;" v
|
32
|
+
csv_write_internal writer.c /^csv_write_internal(VALUE obj, VALUE path)$/;" f file:
|
33
|
+
deps image.h /^ VALUE *deps;$/;" m struct:_vipsImg
|
34
|
+
deps_len image.h /^ int deps_len;$/;" m struct:_vipsImg
|
35
|
+
dmask mask.h /^ DOUBLEMASK *dmask;$/;" m struct:_vipsMask
|
36
|
+
dmask2rb mask.c /^dmask2rb(DOUBLEMASK *msk)$/;" f
|
37
|
+
eVIPSError ruby_vips.c /^VALUE mVIPS, eVIPSError;$/;" v
|
38
|
+
header_band_fmt header.c /^header_band_fmt(VALUE obj)$/;" f file:
|
39
|
+
header_band_fmt_to_id header.c /^header_band_fmt_to_id(VipsBandFmt band_fmt)$/;" f
|
40
|
+
header_bands header.c /^header_bands(VALUE obj)$/;" f file:
|
41
|
+
header_exif header.c /^header_exif(VALUE obj)$/;" f file:
|
42
|
+
header_exif_p header.c /^header_exif_p(VALUE obj)$/;" f file:
|
43
|
+
header_get header.c /^header_get(VALUE obj, VALUE name)$/;" f file:
|
44
|
+
header_icc header.c /^header_icc(VALUE obj)$/;" f file:
|
45
|
+
header_icc_p header.c /^header_icc_p(VALUE obj)$/;" f file:
|
46
|
+
header_id_to_band_fmt header.c /^header_id_to_band_fmt(ID rb)$/;" f
|
47
|
+
header_meta_get header.c /^header_meta_get(VALUE obj, const char* name)$/;" f file:
|
48
|
+
header_meta_get_string header.c /^header_meta_get_string(VALUE obj, const char* name)$/;" f file:
|
49
|
+
header_meta_p header.c /^header_meta_p(VALUE obj, const char* name)$/;" f file:
|
50
|
+
header_meta_set_string header.c /^header_meta_set_string(VALUE obj, const char* name, const char* value)$/;" f file:
|
51
|
+
header_n_elements header.c /^header_n_elements(VALUE obj)$/;" f file:
|
52
|
+
header_set header.c /^header_set(VALUE obj, VALUE name, VALUE value)$/;" f file:
|
53
|
+
header_sizeof_element header.c /^header_sizeof_element(VALUE obj)$/;" f file:
|
54
|
+
header_sizeof_line header.c /^header_sizeof_line(VALUE obj)$/;" f file:
|
55
|
+
header_sizeof_pel header.c /^header_sizeof_pel(VALUE obj)$/;" f file:
|
56
|
+
header_x_offset header.c /^header_x_offset(VALUE obj)$/;" f file:
|
57
|
+
header_x_res header.c /^header_x_res(VALUE obj)$/;" f file:
|
58
|
+
header_x_size header.c /^header_x_size(VALUE obj)$/;" f file:
|
59
|
+
header_y_offset header.c /^header_y_offset(VALUE obj)$/;" f file:
|
60
|
+
header_y_res header.c /^header_y_res(VALUE obj)$/;" f file:
|
61
|
+
header_y_size header.c /^header_y_size(VALUE obj)$/;" f file:
|
62
|
+
id_INTERPOLATORS interpolator.c /^static ID id_INTERPOLATORS;$/;" v file:
|
63
|
+
id_absolute_colorimetric image_colour.c /^ id_absolute_colorimetric;$/;" v file:
|
64
|
+
id_b_w image.c /^static ID id_b_w, id_histogram, id_fourier, id_xyz, id_lab, id_cmyk, id_labq,$/;" v file:
|
65
|
+
id_black image_conversion.c /^static ID id_black, id_extend, id_repeat, id_mirror, id_white;$/;" v file:
|
66
|
+
id_char header.c /^static ID id_notset, id_uchar, id_char, id_ushort, id_short, id_uint, id_int,$/;" v file:
|
67
|
+
id_cmyk image.c /^static ID id_b_w, id_histogram, id_fourier, id_xyz, id_lab, id_cmyk, id_labq,$/;" v file:
|
68
|
+
id_complex header.c /^ id_float, id_complex, id_double, id_dbcomplex;$/;" v file:
|
69
|
+
id_dbcomplex header.c /^ id_float, id_complex, id_double, id_dbcomplex;$/;" v file:
|
70
|
+
id_double header.c /^ id_float, id_complex, id_double, id_dbcomplex;$/;" v file:
|
71
|
+
id_extend image_conversion.c /^static ID id_black, id_extend, id_repeat, id_mirror, id_white;$/;" v file:
|
72
|
+
id_float header.c /^ id_float, id_complex, id_double, id_dbcomplex;$/;" v file:
|
73
|
+
id_fourier image.c /^static ID id_b_w, id_histogram, id_fourier, id_xyz, id_lab, id_cmyk, id_labq,$/;" v file:
|
74
|
+
id_grey16 image.c /^ id_rgb, id_ucs, id_lch, id_labs, id_srgb, id_yxy, id_rgb16, id_grey16;$/;" v file:
|
75
|
+
id_histogram image.c /^static ID id_b_w, id_histogram, id_fourier, id_xyz, id_lab, id_cmyk, id_labq,$/;" v file:
|
76
|
+
id_int header.c /^static ID id_notset, id_uchar, id_char, id_ushort, id_short, id_uint, id_int,$/;" v file:
|
77
|
+
id_iv__vips_fmt reader.c /^ID id_iv__vips_fmt;$/;" v
|
78
|
+
id_lab image.c /^static ID id_b_w, id_histogram, id_fourier, id_xyz, id_lab, id_cmyk, id_labq,$/;" v file:
|
79
|
+
id_labq image.c /^static ID id_b_w, id_histogram, id_fourier, id_xyz, id_lab, id_cmyk, id_labq,$/;" v file:
|
80
|
+
id_labs image.c /^ id_rgb, id_ucs, id_lch, id_labs, id_srgb, id_yxy, id_rgb16, id_grey16;$/;" v file:
|
81
|
+
id_lch image.c /^ id_rgb, id_ucs, id_lch, id_labs, id_srgb, id_yxy, id_rgb16, id_grey16;$/;" v file:
|
82
|
+
id_match_both image_mosaicing.c /^ID id_match_left, id_match_right, id_match_both, id_match_none;$/;" v
|
83
|
+
id_match_left image_mosaicing.c /^ID id_match_left, id_match_right, id_match_both, id_match_none;$/;" v
|
84
|
+
id_match_none image_mosaicing.c /^ID id_match_left, id_match_right, id_match_both, id_match_none;$/;" v
|
85
|
+
id_match_right image_mosaicing.c /^ID id_match_left, id_match_right, id_match_both, id_match_none;$/;" v
|
86
|
+
id_mirror image_conversion.c /^static ID id_black, id_extend, id_repeat, id_mirror, id_white;$/;" v file:
|
87
|
+
id_none image.c /^static ID id_none, id_rad;$/;" v file:
|
88
|
+
id_notset header.c /^static ID id_notset, id_uchar, id_char, id_ushort, id_short, id_uint, id_int,$/;" v file:
|
89
|
+
id_perceptual image_colour.c /^static ID id_perceptual, id_relative_colorimetric, id_saturation,$/;" v file:
|
90
|
+
id_rad image.c /^static ID id_none, id_rad;$/;" v file:
|
91
|
+
id_relative_colorimetric image_colour.c /^static ID id_perceptual, id_relative_colorimetric, id_saturation,$/;" v file:
|
92
|
+
id_repeat image_conversion.c /^static ID id_black, id_extend, id_repeat, id_mirror, id_white;$/;" v file:
|
93
|
+
id_rgb image.c /^ id_rgb, id_ucs, id_lch, id_labs, id_srgb, id_yxy, id_rgb16, id_grey16;$/;" v file:
|
94
|
+
id_rgb16 image.c /^ id_rgb, id_ucs, id_lch, id_labs, id_srgb, id_yxy, id_rgb16, id_grey16;$/;" v file:
|
95
|
+
id_saturation image_colour.c /^static ID id_perceptual, id_relative_colorimetric, id_saturation,$/;" v file:
|
96
|
+
id_short header.c /^static ID id_notset, id_uchar, id_char, id_ushort, id_short, id_uint, id_int,$/;" v file:
|
97
|
+
id_srgb image.c /^ id_rgb, id_ucs, id_lch, id_labs, id_srgb, id_yxy, id_rgb16, id_grey16;$/;" v file:
|
98
|
+
id_uchar header.c /^static ID id_notset, id_uchar, id_char, id_ushort, id_short, id_uint, id_int,$/;" v file:
|
99
|
+
id_ucs image.c /^ id_rgb, id_ucs, id_lch, id_labs, id_srgb, id_yxy, id_rgb16, id_grey16;$/;" v file:
|
100
|
+
id_uint header.c /^static ID id_notset, id_uchar, id_char, id_ushort, id_short, id_uint, id_int,$/;" v file:
|
101
|
+
id_ushort header.c /^static ID id_notset, id_uchar, id_char, id_ushort, id_short, id_uint, id_int,$/;" v file:
|
102
|
+
id_white image_conversion.c /^static ID id_black, id_extend, id_repeat, id_mirror, id_white;$/;" v file:
|
103
|
+
id_xyz image.c /^static ID id_b_w, id_histogram, id_fourier, id_xyz, id_lab, id_cmyk, id_labq,$/;" v file:
|
104
|
+
id_yxy image.c /^ id_rgb, id_ucs, id_lch, id_labs, id_srgb, id_yxy, id_rgb16, id_grey16;$/;" v file:
|
105
|
+
im_openout ruby_vips.h 35;" d
|
106
|
+
im_openout ruby_vips.h 36;" d
|
107
|
+
imask mask.h /^ INTMASK *imask;$/;" m struct:_vipsMask
|
108
|
+
imask2rb mask.c /^imask2rb(INTMASK *msk)$/;" f
|
109
|
+
img_abs image_arithmetic.c /^img_abs(VALUE obj)$/;" f
|
110
|
+
img_acos image_arithmetic.c /^img_acos(VALUE obj)$/;" f
|
111
|
+
img_add image_arithmetic.c /^img_add(VALUE obj, VALUE obj2)$/;" f
|
112
|
+
img_add_dep image.c /^img_add_dep(vipsImg *im, VALUE dep)$/;" f
|
113
|
+
img_addgnoise image_convolution.c /^img_addgnoise(VALUE obj, VALUE sigma)$/;" f
|
114
|
+
img_affinei image_resample.c /^img_affinei(int argc, VALUE *argv, VALUE obj)$/;" f
|
115
|
+
img_affinei_resize image_resample.c /^img_affinei_resize(int argc, VALUE *argv, VALUE obj)$/;" f
|
116
|
+
img_align_bands image_mosaicing.c /^img_align_bands(VALUE obj)$/;" f
|
117
|
+
img_alloc image.c /^img_alloc(VALUE klass)$/;" f
|
118
|
+
img_and image_boolean.c /^img_and(int argc, VALUE *argv, VALUE obj)$/;" f
|
119
|
+
img_and_binop image_boolean.c /^img_and_binop(VALUE obj, VALUE arg)$/;" f
|
120
|
+
img_and_const image_boolean.c /^img_and_const(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
121
|
+
img_and_img image_boolean.c /^img_and_img(VALUE obj, VALUE obj2)$/;" f file:
|
122
|
+
img_aref image.c /^img_aref(VALUE obj, VALUE v_x, VALUE v_y)$/;" f file:
|
123
|
+
img_asin image_arithmetic.c /^img_asin(VALUE obj)$/;" f
|
124
|
+
img_atan image_arithmetic.c /^img_atan(VALUE obj)$/;" f
|
125
|
+
img_avg image_arithmetic.c /^img_avg(VALUE obj) {$/;" f
|
126
|
+
img_bandjoin image_conversion.c /^img_bandjoin(int argc, VALUE *argv, VALUE obj)$/;" f
|
127
|
+
img_bandmean image_arithmetic.c /^img_bandmean(VALUE obj)$/;" f
|
128
|
+
img_blend image_relational.c /^img_blend(VALUE obj, VALUE obj2, VALUE obj3)$/;" f
|
129
|
+
img_c2amph image_conversion.c /^img_c2amph(VALUE obj)$/;" f
|
130
|
+
img_c2imag image_conversion.c /^img_c2imag(VALUE obj)$/;" f
|
131
|
+
img_c2real image_conversion.c /^img_c2real(VALUE obj)$/;" f
|
132
|
+
img_c2rect image_conversion.c /^img_c2rect(VALUE obj)$/;" f
|
133
|
+
img_ceil image_arithmetic.c /^img_ceil(VALUE obj)$/;" f
|
134
|
+
img_clip2fmt image_conversion.c /^img_clip2fmt(VALUE obj, VALUE fmt)$/;" f
|
135
|
+
img_cntlines image_morphology.c /^img_cntlines(VALUE obj, int flag) {$/;" f file:
|
136
|
+
img_cntlines_h image_morphology.c /^img_cntlines_h(VALUE obj) {$/;" f
|
137
|
+
img_cntlines_v image_morphology.c /^img_cntlines_v(VALUE obj) {$/;" f
|
138
|
+
img_coding image.c /^img_coding(VALUE obj)$/;" f file:
|
139
|
+
img_coding_to_id image.c /^img_coding_to_id(VipsCoding coding)$/;" f
|
140
|
+
img_compass image_convolution.c /^img_compass(VALUE obj, VALUE mask)$/;" f
|
141
|
+
img_contrast_surface image_convolution.c /^img_contrast_surface(VALUE obj, VALUE half_win_size, VALUE spacing)$/;" f
|
142
|
+
img_conv image_convolution.c /^img_conv(VALUE obj, VALUE m)$/;" f
|
143
|
+
img_convsep image_convolution.c /^img_convsep(VALUE obj, VALUE mask)$/;" f
|
144
|
+
img_copy_file image_conversion.c /^img_copy_file(VALUE obj)$/;" f
|
145
|
+
img_copy_native image_conversion.c /^img_copy_native(VALUE obj, VALUE input_msb_first)$/;" f
|
146
|
+
img_copy_swap image_conversion.c /^img_copy_swap(VALUE obj)$/;" f
|
147
|
+
img_correl image_mosaicing.c /^img_correl(VALUE obj, VALUE obj2, VALUE xref, VALUE yref, VALUE xsec,$/;" f
|
148
|
+
img_cos image_arithmetic.c /^img_cos(VALUE obj)$/;" f
|
149
|
+
img_cross_phase image_arithmetic.c /^img_cross_phase(VALUE obj, VALUE obj2)$/;" f
|
150
|
+
img_data image.c /^img_data(VALUE obj)$/;" f file:
|
151
|
+
img_de00_from_lab image_colour.c /^img_de00_from_lab(VALUE obj, VALUE obj2)$/;" f
|
152
|
+
img_de_from_lab image_colour.c /^img_de_from_lab(VALUE obj, VALUE obj2)$/;" f
|
153
|
+
img_de_from_xyz image_colour.c /^img_de_from_xyz(VALUE obj, VALUE obj2)$/;" f
|
154
|
+
img_decmc_from_lab image_colour.c /^img_decmc_from_lab(VALUE obj, VALUE obj2)$/;" f
|
155
|
+
img_deviate image_arithmetic.c /^img_deviate(VALUE obj) {$/;" f
|
156
|
+
img_dilate image_morphology.c /^img_dilate(VALUE obj, VALUE mask)$/;" f
|
157
|
+
img_disp_ps image_freq_filt.c /^img_disp_ps(VALUE obj)$/;" f
|
158
|
+
img_divide image_arithmetic.c /^img_divide(VALUE obj, VALUE obj2)$/;" f
|
159
|
+
img_dup image_conversion.c /^img_dup(VALUE obj)$/;" f
|
160
|
+
img_each_pixel image.c /^img_each_pixel(VALUE obj)$/;" f file:
|
161
|
+
img_embed image_conversion.c /^img_embed(VALUE obj, VALUE type_v, VALUE x, VALUE y, VALUE width, VALUE height)$/;" f
|
162
|
+
img_equal image_relational.c /^img_equal(int argc, VALUE *argv, VALUE obj)$/;" f
|
163
|
+
img_equal_const image_relational.c /^img_equal_const(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
164
|
+
img_equal_img image_relational.c /^img_equal_img(VALUE obj, VALUE obj2)$/;" f file:
|
165
|
+
img_erode image_morphology.c /^img_erode(VALUE obj, VALUE mask)$/;" f
|
166
|
+
img_expn image_arithmetic.c /^img_expn(int argc, VALUE *argv, VALUE obj)$/;" f
|
167
|
+
img_extract_area image_conversion.c /^img_extract_area(int argc, VALUE *argv, VALUE obj)$/;" f
|
168
|
+
img_extract_band image_conversion.c /^img_extract_band(int argc, VALUE *argv, VALUE obj)$/;" f
|
169
|
+
img_falsecolour image_conversion.c /^img_falsecolour(VALUE obj)$/;" f
|
170
|
+
img_fastcor image_convolution.c /^img_fastcor(VALUE obj, VALUE obj2)$/;" f
|
171
|
+
img_filename image.c /^img_filename(VALUE obj)$/;" f file:
|
172
|
+
img_fliphor image_conversion.c /^img_fliphor(VALUE obj)$/;" f
|
173
|
+
img_flipver image_conversion.c /^img_flipver(VALUE obj)$/;" f
|
174
|
+
img_float_to_rad image_colour.c /^img_float_to_rad(VALUE obj)$/;" f
|
175
|
+
img_floor image_arithmetic.c /^img_floor(VALUE obj)$/;" f
|
176
|
+
img_free image.c /^img_free(vipsImg *im)$/;" f file:
|
177
|
+
img_freqflt image_freq_filt.c /^img_freqflt(VALUE obj, VALUE obj2)$/;" f
|
178
|
+
img_fwfft image_freq_filt.c /^img_fwfft(VALUE obj)$/;" f
|
179
|
+
img_gammacorrect image_histograms_lut.c /^img_gammacorrect(VALUE obj, VALUE exponent)$/;" f
|
180
|
+
img_global_balance image_mosaicing.c /^img_global_balance(VALUE obj, VALUE gamma)$/;" f
|
181
|
+
img_global_balancef image_mosaicing.c /^img_global_balancef(VALUE obj, VALUE gamma)$/;" f
|
182
|
+
img_grad_x image_convolution.c /^img_grad_x(VALUE obj)$/;" f
|
183
|
+
img_grad_y image_convolution.c /^img_grad_y(VALUE obj)$/;" f
|
184
|
+
img_gradcor image_convolution.c /^img_gradcor(VALUE obj, VALUE obj2)$/;" f
|
185
|
+
img_gradient image_convolution.c /^img_gradient(VALUE obj, VALUE mask)$/;" f
|
186
|
+
img_grid image_conversion.c /^img_grid(VALUE obj, VALUE tile_height, VALUE across, VALUE down)$/;" f
|
187
|
+
img_heq image_histograms_lut.c /^img_heq(int argc, VALUE *argv, VALUE obj)$/;" f
|
188
|
+
img_hist image_histograms_lut.c /^img_hist(int argc, VALUE *argv, VALUE obj)$/;" f
|
189
|
+
img_hist_indexed image_histograms_lut.c /^img_hist_indexed(VALUE obj, VALUE obj2)$/;" f
|
190
|
+
img_histcum image_histograms_lut.c /^img_histcum(VALUE obj)$/;" f
|
191
|
+
img_histeq image_histograms_lut.c /^img_histeq(VALUE obj)$/;" f
|
192
|
+
img_histgr image_histograms_lut.c /^img_histgr(int argc, VALUE *argv, VALUE obj)$/;" f
|
193
|
+
img_histnd image_histograms_lut.c /^img_histnd(VALUE obj, VALUE bins)$/;" f
|
194
|
+
img_histnorm image_histograms_lut.c /^img_histnorm(VALUE obj)$/;" f
|
195
|
+
img_histplot image_histograms_lut.c /^img_histplot(VALUE obj)$/;" f
|
196
|
+
img_histspec image_histograms_lut.c /^img_histspec(VALUE obj, VALUE obj2)$/;" f
|
197
|
+
img_hsp image_histograms_lut.c /^img_hsp(VALUE obj, VALUE obj2)$/;" f
|
198
|
+
img_icc_ac2rc image_colour.c /^img_icc_ac2rc(VALUE obj, VALUE depth, VALUE profile_filename)$/;" f
|
199
|
+
img_icc_export_depth image_colour.c /^img_icc_export_depth(VALUE obj, VALUE depth, VALUE output_profile_filename,$/;" f
|
200
|
+
img_icc_import image_colour.c /^img_icc_import(VALUE obj, VALUE input_profile_filename, VALUE intent)$/;" f
|
201
|
+
img_icc_import_embedded image_colour.c /^img_icc_import_embedded(VALUE obj, VALUE intent)$/;" f
|
202
|
+
img_icc_transform image_colour.c /^img_icc_transform(VALUE obj, VALUE input_profile_filename,$/;" f
|
203
|
+
img_id_to_intent image_colour.c /^img_id_to_intent(ID rb)$/;" f
|
204
|
+
img_ifthenelse image_relational.c /^img_ifthenelse(VALUE obj, VALUE obj2, VALUE obj3)$/;" f
|
205
|
+
img_init image.c /^img_init(VALUE klass, VipsImage *im)$/;" f
|
206
|
+
img_init_partial image.c /^img_init_partial()$/;" f
|
207
|
+
img_init_partial_anyclass image.c /^img_init_partial_anyclass(VALUE klass)$/;" f
|
208
|
+
img_insert image_conversion.c /^img_insert(int argc, VALUE *argv, VALUE obj)$/;" f
|
209
|
+
img_insert_noexpand image_conversion.c /^img_insert_noexpand(VALUE obj, VALUE obj2, VALUE x, VALUE y)$/;" f
|
210
|
+
img_insert_one image_conversion.c /^img_insert_one(VALUE obj, VALUE obj2, VALUE x, VALUE y)$/;" f file:
|
211
|
+
img_insertset image_conversion.c /^img_insertset(int argc, VALUE *argv, VALUE obj, VALUE obj2)$/;" f file:
|
212
|
+
img_invert image_arithmetic.c /^img_invert(VALUE obj)$/;" f
|
213
|
+
img_invfft image_freq_filt.c /^img_invfft(VALUE obj)$/;" f
|
214
|
+
img_invfftr image_freq_filt.c /^img_invfftr(VALUE obj)$/;" f
|
215
|
+
img_kill image.c /^img_kill(VALUE obj)$/;" f file:
|
216
|
+
img_lab_morph image_colour.c /^img_lab_morph(VALUE obj, VALUE mask, VALUE l_offset, VALUE l_scale,$/;" f
|
217
|
+
img_lab_to_labq image_colour.c /^img_lab_to_labq(VALUE obj)$/;" f
|
218
|
+
img_lab_to_labs image_colour.c /^img_lab_to_labs(VALUE obj)$/;" f
|
219
|
+
img_lab_to_lch image_colour.c /^img_lab_to_lch(VALUE obj)$/;" f
|
220
|
+
img_lab_to_ucs image_colour.c /^img_lab_to_ucs(VALUE obj)$/;" f
|
221
|
+
img_lab_to_xyz image_colour.c /^img_lab_to_xyz(VALUE obj)$/;" f
|
222
|
+
img_lab_to_xyz_temp image_colour.c /^img_lab_to_xyz_temp(VALUE obj, VALUE x0, VALUE y0, VALUE z0)$/;" f
|
223
|
+
img_label_regions image_morphology.c /^img_label_regions(VALUE obj)$/;" f
|
224
|
+
img_labq_to_lab image_colour.c /^img_labq_to_lab(VALUE obj)$/;" f
|
225
|
+
img_labq_to_labs image_colour.c /^img_labq_to_labs(VALUE obj)$/;" f
|
226
|
+
img_labq_to_xyz image_colour.c /^img_labq_to_xyz(VALUE obj)$/;" f
|
227
|
+
img_labs_to_lab image_colour.c /^img_labs_to_lab(VALUE obj)$/;" f
|
228
|
+
img_labs_to_labq image_colour.c /^img_labs_to_labq(VALUE obj)$/;" f
|
229
|
+
img_lch_to_lab image_colour.c /^img_lch_to_lab(VALUE obj)$/;" f
|
230
|
+
img_lch_to_ucs image_colour.c /^img_lch_to_ucs(VALUE obj)$/;" f
|
231
|
+
img_less image_relational.c /^img_less(int argc, VALUE *argv, VALUE obj)$/;" f
|
232
|
+
img_less_const image_relational.c /^img_less_const(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
233
|
+
img_less_img image_relational.c /^img_less_img(VALUE obj, VALUE obj2)$/;" f file:
|
234
|
+
img_lesseq image_relational.c /^img_lesseq(int argc, VALUE *argv, VALUE obj)$/;" f
|
235
|
+
img_lesseq_const image_relational.c /^img_lesseq_const(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
236
|
+
img_lesseq_img image_relational.c /^img_lesseq_img(VALUE obj, VALUE obj2)$/;" f file:
|
237
|
+
img_lhisteq image_histograms_lut.c /^img_lhisteq(VALUE obj, VALUE xwin, VALUE ywin)$/;" f
|
238
|
+
img_lin image_arithmetic.c /^img_lin(VALUE obj, VALUE a, VALUE b)$/;" f
|
239
|
+
img_lin_mult image_arithmetic.c /^img_lin_mult(int argc, VALUE *argv_a, VALUE *argv_b, VALUE obj)$/;" f file:
|
240
|
+
img_lindetect image_convolution.c /^img_lindetect(VALUE obj, VALUE mask)$/;" f
|
241
|
+
img_log image_arithmetic.c /^img_log(VALUE obj)$/;" f
|
242
|
+
img_log10 image_arithmetic.c /^img_log10(VALUE obj)$/;" f
|
243
|
+
img_lrjoin image_conversion.c /^img_lrjoin(VALUE obj, VALUE obj2)$/;" f
|
244
|
+
img_lrmerge image_mosaicing.c /^img_lrmerge(int argc, VALUE *argv, VALUE obj)$/;" f
|
245
|
+
img_lrmerge1 image_mosaicing.c /^img_lrmerge1(int argc, VALUE *argv, VALUE obj)$/;" f
|
246
|
+
img_lrmosaic image_mosaicing.c /^img_lrmosaic(int argc, VALUE *argv, VALUE obj)$/;" f
|
247
|
+
img_lrmosaic1 image_mosaicing.c /^img_lrmosaic1(int argc, VALUE *argv, VALUE obj)$/;" f
|
248
|
+
img_maplut image_histograms_lut.c /^img_maplut(VALUE obj, VALUE obj2)$/;" f
|
249
|
+
img_mark image.c /^img_mark(vipsImg *im)$/;" f file:
|
250
|
+
img_match_linear image_resample.c /^img_match_linear(VALUE obj, VALUE obj2,$/;" f
|
251
|
+
img_match_linear_search image_resample.c /^img_match_linear_search(VALUE obj, VALUE obj2,$/;" f
|
252
|
+
img_max image_arithmetic.c /^img_max(VALUE obj) {$/;" f
|
253
|
+
img_maxpos image_arithmetic.c /^img_maxpos(int argc, VALUE *argv, VALUE obj) {$/;" f
|
254
|
+
img_maxpos_avg image_arithmetic.c /^img_maxpos_avg(VALUE obj) {$/;" f
|
255
|
+
img_maxpos_n image_arithmetic.c /^img_maxpos_n(VALUE obj, int len) {$/;" f file:
|
256
|
+
img_maxpos_single image_arithmetic.c /^img_maxpos_single(VALUE obj) {$/;" f file:
|
257
|
+
img_maxpos_subpel image_mosaicing.c /^img_maxpos_subpel(VALUE obj)$/;" f
|
258
|
+
img_maxvalue image_morphology.c /^img_maxvalue(int argc, VALUE *argv, VALUE obj)$/;" f
|
259
|
+
img_measure_area image_arithmetic.c /^img_measure_area(VALUE obj, VALUE left, VALUE top, VALUE width, VALUE height,$/;" f
|
260
|
+
img_min image_arithmetic.c /^img_min(VALUE obj) {$/;" f
|
261
|
+
img_minpos image_arithmetic.c /^img_minpos(int argc, VALUE *argv, VALUE obj) {$/;" f
|
262
|
+
img_minpos_n image_arithmetic.c /^img_minpos_n(VALUE obj, int len) {$/;" f file:
|
263
|
+
img_minpos_single image_arithmetic.c /^img_minpos_single(VALUE obj) {$/;" f file:
|
264
|
+
img_monotonic_p image_histograms_lut.c /^img_monotonic_p(VALUE obj)$/;" f
|
265
|
+
img_more image_relational.c /^img_more(int argc, VALUE *argv, VALUE obj)$/;" f
|
266
|
+
img_more_const image_relational.c /^img_more_const(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
267
|
+
img_more_img image_relational.c /^img_more_img(VALUE obj, VALUE obj2)$/;" f file:
|
268
|
+
img_moreeq image_relational.c /^img_moreeq(int argc, VALUE *argv, VALUE obj)$/;" f
|
269
|
+
img_moreeq_const image_relational.c /^img_moreeq_const(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
270
|
+
img_moreeq_img image_relational.c /^img_moreeq_img(VALUE obj, VALUE obj2)$/;" f file:
|
271
|
+
img_mpercent image_histograms_lut.c /^img_mpercent(VALUE obj, VALUE percent)$/;" f
|
272
|
+
img_mpercent_hist image_histograms_lut.c /^img_mpercent_hist(VALUE obj, VALUE percent)$/;" f
|
273
|
+
img_msb image_conversion.c /^img_msb(int argc, VALUE *argv, VALUE obj)$/;" f
|
274
|
+
img_multiply image_arithmetic.c /^img_multiply(VALUE obj, VALUE obj2)$/;" f
|
275
|
+
img_notequal image_relational.c /^img_notequal(int argc, VALUE *argv, VALUE obj)$/;" f
|
276
|
+
img_notequal_const image_relational.c /^img_notequal_const(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
277
|
+
img_notequal_img image_relational.c /^img_notequal_img(VALUE obj, VALUE obj2)$/;" f file:
|
278
|
+
img_or image_boolean.c /^img_or(int argc, VALUE *argv, VALUE obj)$/;" f
|
279
|
+
img_or_binop image_boolean.c /^img_or_binop(VALUE obj, VALUE arg)$/;" f
|
280
|
+
img_or_const image_boolean.c /^img_or_const(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
281
|
+
img_or_img image_boolean.c /^img_or_img(VALUE obj, VALUE obj2)$/;" f file:
|
282
|
+
img_phasecor_fft image_freq_filt.c /^img_phasecor_fft(VALUE obj, VALUE obj2)$/;" f
|
283
|
+
img_pixel_to_rb image.c /^img_pixel_to_rb(VipsImage *im, int x, int y)$/;" f file:
|
284
|
+
img_point image_arithmetic.c /^img_point(VALUE obj, VALUE itrp_sym, VALUE x, VALUE y, VALUE band)$/;" f
|
285
|
+
img_pow image_arithmetic.c /^img_pow(int argc, VALUE *argv, VALUE obj)$/;" f
|
286
|
+
img_pow_binop image_arithmetic.c /^img_pow_binop(VALUE obj, VALUE arg)$/;" f
|
287
|
+
img_profile image_morphology.c /^img_profile(VALUE obj, int dir)$/;" f file:
|
288
|
+
img_profile_h image_morphology.c /^img_profile_h(VALUE obj)$/;" f
|
289
|
+
img_profile_v image_morphology.c /^img_profile_v(VALUE obj)$/;" f
|
290
|
+
img_project image_histograms_lut.c /^img_project(VALUE obj)$/;" f
|
291
|
+
img_rad_to_float image_colour.c /^img_rad_to_float(VALUE obj)$/;" f
|
292
|
+
img_rank image_morphology.c /^img_rank(VALUE obj, VALUE xsize, VALUE ysize, VALUE order)$/;" f
|
293
|
+
img_rank_image image_morphology.c /^img_rank_image(int argc, VALUE *argv, VALUE obj)$/;" f
|
294
|
+
img_rank_image_internal image_morphology.c /^img_rank_image_internal(int argc, VALUE *argv, VALUE obj, int index)$/;" f
|
295
|
+
img_recomb image_arithmetic.c /^img_recomb(VALUE obj, VALUE recomb)$/;" f
|
296
|
+
img_remainder image_arithmetic.c /^img_remainder(int argc, VALUE *argv, VALUE obj)$/;" f
|
297
|
+
img_remainder_binop image_arithmetic.c /^img_remainder_binop(VALUE obj, VALUE arg)$/;" f
|
298
|
+
img_remainder_const image_arithmetic.c /^img_remainder_const(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
299
|
+
img_remainder_img image_arithmetic.c /^img_remainder_img(VALUE obj, VALUE obj2)$/;" f file:
|
300
|
+
img_replicate image_conversion.c /^img_replicate(VALUE obj, VALUE across, VALUE down)$/;" f
|
301
|
+
img_ri2c image_conversion.c /^img_ri2c(VALUE obj, VALUE obj2)$/;" f
|
302
|
+
img_rightshift_size image_resample.c /^img_rightshift_size(VALUE obj, VALUE xshift, VALUE yshift, VALUE fmt)$/;" f
|
303
|
+
img_rint image_arithmetic.c /^img_rint(VALUE obj)$/;" f
|
304
|
+
img_rot180 image_conversion.c /^img_rot180(VALUE obj)$/;" f
|
305
|
+
img_rot270 image_conversion.c /^img_rot270(VALUE obj)$/;" f
|
306
|
+
img_rot90 image_conversion.c /^img_rot90(VALUE obj)$/;" f
|
307
|
+
img_rotquad image_freq_filt.c /^img_rotquad(VALUE obj)$/;" f
|
308
|
+
img_s_black image_conversion.c /^img_s_black(VALUE obj, VALUE width, VALUE height, VALUE bands)$/;" f
|
309
|
+
img_s_buildlut image_histograms_lut.c /^img_s_buildlut(VALUE obj, VALUE input)$/;" f
|
310
|
+
img_s_fmask_butterworth_bandpass image_freq_filt.c /^img_s_fmask_butterworth_bandpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
311
|
+
img_s_fmask_butterworth_bandreject image_freq_filt.c /^img_s_fmask_butterworth_bandreject(VALUE obj, VALUE x, VALUE y,$/;" f
|
312
|
+
img_s_fmask_butterworth_highpass image_freq_filt.c /^img_s_fmask_butterworth_highpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
313
|
+
img_s_fmask_butterworth_lowpass image_freq_filt.c /^img_s_fmask_butterworth_lowpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
314
|
+
img_s_fmask_butterworth_ringpass image_freq_filt.c /^img_s_fmask_butterworth_ringpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
315
|
+
img_s_fmask_butterworth_ringreject image_freq_filt.c /^img_s_fmask_butterworth_ringreject(VALUE obj, VALUE x, VALUE y,$/;" f
|
316
|
+
img_s_fmask_fractal_flt image_freq_filt.c /^img_s_fmask_fractal_flt(VALUE obj, VALUE x, VALUE y,$/;" f
|
317
|
+
img_s_fmask_gauss_bandpass image_freq_filt.c /^img_s_fmask_gauss_bandpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
318
|
+
img_s_fmask_gauss_bandreject image_freq_filt.c /^img_s_fmask_gauss_bandreject(VALUE obj, VALUE x, VALUE y,$/;" f
|
319
|
+
img_s_fmask_gauss_highpass image_freq_filt.c /^img_s_fmask_gauss_highpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
320
|
+
img_s_fmask_gauss_lowpass image_freq_filt.c /^img_s_fmask_gauss_lowpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
321
|
+
img_s_fmask_gauss_ringpass image_freq_filt.c /^img_s_fmask_gauss_ringpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
322
|
+
img_s_fmask_gauss_ringreject image_freq_filt.c /^img_s_fmask_gauss_ringreject(VALUE obj, VALUE x, VALUE y,$/;" f
|
323
|
+
img_s_fmask_ideal_bandpass image_freq_filt.c /^img_s_fmask_ideal_bandpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
324
|
+
img_s_fmask_ideal_bandreject image_freq_filt.c /^img_s_fmask_ideal_bandreject(VALUE obj, VALUE x, VALUE y,$/;" f
|
325
|
+
img_s_fmask_ideal_highpass image_freq_filt.c /^img_s_fmask_ideal_highpass(VALUE obj, VALUE x, VALUE y, VALUE frequency_cutoff)$/;" f
|
326
|
+
img_s_fmask_ideal_highpass image_freq_filt.c /^img_s_fmask_ideal_highpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
327
|
+
img_s_fmask_ideal_lowpass image_freq_filt.c /^img_s_fmask_ideal_lowpass(VALUE obj, VALUE x, VALUE y, VALUE frequency_cutoff)$/;" f
|
328
|
+
img_s_fmask_ideal_lowpass image_freq_filt.c /^img_s_fmask_ideal_lowpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
329
|
+
img_s_fmask_ideal_ringpass image_freq_filt.c /^img_s_fmask_ideal_ringpass(VALUE obj, VALUE x, VALUE y,$/;" f
|
330
|
+
img_s_fmask_ideal_ringreject image_freq_filt.c /^img_s_fmask_ideal_ringreject(VALUE obj, VALUE x, VALUE y,$/;" f
|
331
|
+
img_s_fractsurf image_freq_filt.c /^img_s_fractsurf(VALUE obj, VALUE size, VALUE frd)$/;" f
|
332
|
+
img_s_gaussnoise image_conversion.c /^img_s_gaussnoise(VALUE obj, VALUE x, VALUE y, VALUE mean, VALUE sigma)$/;" f
|
333
|
+
img_s_identity image_histograms_lut.c /^img_s_identity(VALUE obj, VALUE bands)$/;" f
|
334
|
+
img_s_identity_ushort image_histograms_lut.c /^img_s_identity_ushort(VALUE obj, VALUE bands, VALUE sz)$/;" f
|
335
|
+
img_s_invertlut image_histograms_lut.c /^img_s_invertlut(VALUE obj, VALUE input, VALUE lut_size)$/;" f
|
336
|
+
img_s_linreg image_arithmetic.c /^img_s_linreg(int argc, VALUE *argv, VALUE obj)$/;" f
|
337
|
+
img_s_text image_conversion.c /^img_s_text(VALUE obj, VALUE text, VALUE font, VALUE width,$/;" f
|
338
|
+
img_s_tone_build image_histograms_lut.c /^img_s_tone_build(VALUE obj,$/;" f
|
339
|
+
img_s_tone_build_range image_histograms_lut.c /^img_s_tone_build_range(VALUE obj,$/;" f
|
340
|
+
img_scale image_conversion.c /^img_scale(VALUE obj)$/;" f
|
341
|
+
img_scaleps image_conversion.c /^img_scaleps(VALUE obj)$/;" f
|
342
|
+
img_sharpen image_convolution.c /^img_sharpen(VALUE obj, VALUE mask_size, VALUE x1, VALUE y2, VALUE y3, VALUE m1,$/;" f
|
343
|
+
img_shiftleft image_boolean.c /^img_shiftleft(VALUE obj, VALUE arg)$/;" f
|
344
|
+
img_shiftright image_boolean.c /^img_shiftright(VALUE obj, VALUE arg)$/;" f
|
345
|
+
img_shrink image_resample.c /^img_shrink(int argc, VALUE *argv, VALUE obj)$/;" f
|
346
|
+
img_sign image_arithmetic.c /^img_sign(VALUE obj)$/;" f
|
347
|
+
img_sin image_arithmetic.c /^img_sin(VALUE obj)$/;" f
|
348
|
+
img_spawn image.c /^img_spawn(VALUE parent)$/;" f
|
349
|
+
img_spawn2 image.c /^img_spawn2(VALUE parent1, VALUE parent2)$/;" f
|
350
|
+
img_spawn3 image.c /^img_spawn3(VALUE parent1, VALUE parent2, VALUE parent3)$/;" f
|
351
|
+
img_spcor image_convolution.c /^img_spcor(VALUE obj, VALUE obj2)$/;" f
|
352
|
+
img_srgb_to_xyz image_colour.c /^img_srgb_to_xyz(VALUE obj)$/;" f
|
353
|
+
img_stats image_arithmetic.c /^img_stats(VALUE obj)$/;" f
|
354
|
+
img_stdif image_histograms_lut.c /^img_stdif(VALUE obj,$/;" f
|
355
|
+
img_stretch3 image_resample.c /^img_stretch3(int argc, VALUE *argv, VALUE obj)$/;" f
|
356
|
+
img_subsample image_conversion.c /^img_subsample(int argc, VALUE *argv, VALUE obj)$/;" f
|
357
|
+
img_subtract image_arithmetic.c /^img_subtract(VALUE obj, VALUE obj2)$/;" f
|
358
|
+
img_tan image_arithmetic.c /^img_tan(VALUE obj)$/;" f
|
359
|
+
img_tbjoin image_conversion.c /^img_tbjoin(VALUE obj, VALUE obj2)$/;" f
|
360
|
+
img_tbmerge image_mosaicing.c /^img_tbmerge(int argc, VALUE *argv, VALUE obj)$/;" f
|
361
|
+
img_tbmerge1 image_mosaicing.c /^img_tbmerge1(int argc, VALUE *argv, VALUE obj)$/;" f
|
362
|
+
img_tbmosaic image_mosaicing.c /^img_tbmosaic(int argc, VALUE *argv, VALUE obj)$/;" f
|
363
|
+
img_tbmosaic1 image_mosaicing.c /^img_tbmosaic1(int argc, VALUE *argv, VALUE obj)$/;" f
|
364
|
+
img_tile_cache image_conversion.c /^img_tile_cache(VALUE obj, VALUE tile_width, VALUE tile_height, VALUE max_tiles)$/;" f
|
365
|
+
img_to_mask image_conversion.c /^img_to_mask(VALUE obj)$/;" f
|
366
|
+
img_tone_analyse image_histograms_lut.c /^img_tone_analyse(VALUE obj,$/;" f
|
367
|
+
img_ucs_to_lab image_colour.c /^img_ucs_to_lab(VALUE obj)$/;" f
|
368
|
+
img_ucs_to_lch image_colour.c /^img_ucs_to_lch(VALUE obj)$/;" f
|
369
|
+
img_ucs_to_xyz image_colour.c /^img_ucs_to_xyz(VALUE obj)$/;" f
|
370
|
+
img_vtype image.c /^img_vtype(VALUE obj)$/;" f file:
|
371
|
+
img_vtype_to_id image.c /^img_vtype_to_id(VipsType vtype)$/;" f
|
372
|
+
img_wrap image_conversion.c /^img_wrap(VALUE obj, VALUE x, VALUE y)$/;" f
|
373
|
+
img_xor image_boolean.c /^img_xor(int argc, VALUE *argv, VALUE obj)$/;" f
|
374
|
+
img_xor_binop image_boolean.c /^img_xor_binop(VALUE obj, VALUE arg)$/;" f
|
375
|
+
img_xor_const image_boolean.c /^img_xor_const(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
376
|
+
img_xor_img image_boolean.c /^img_xor_img(VALUE obj, VALUE obj2)$/;" f file:
|
377
|
+
img_xyz_to_lab image_colour.c /^img_xyz_to_lab(VALUE obj)$/;" f
|
378
|
+
img_xyz_to_lab_temp image_colour.c /^img_xyz_to_lab_temp(VALUE obj, VALUE x0, VALUE y0, VALUE z0)$/;" f
|
379
|
+
img_xyz_to_srgb image_colour.c /^img_xyz_to_srgb(VALUE obj)$/;" f
|
380
|
+
img_xyz_to_ucs image_colour.c /^img_xyz_to_ucs(VALUE obj)$/;" f
|
381
|
+
img_xyz_to_yxy image_colour.c /^img_xyz_to_yxy(VALUE obj)$/;" f
|
382
|
+
img_yxy_to_xyz image_colour.c /^img_yxy_to_xyz(VALUE obj)$/;" f
|
383
|
+
img_zerox image_morphology.c /^img_zerox(VALUE obj, int flag)$/;" f file:
|
384
|
+
img_zerox_neg image_morphology.c /^img_zerox_neg(VALUE obj)$/;" f
|
385
|
+
img_zerox_pos image_morphology.c /^img_zerox_pos(VALUE obj)$/;" f
|
386
|
+
img_zoom image_conversion.c /^img_zoom(int argc, VALUE *argv, VALUE obj)$/;" f
|
387
|
+
in image.h /^ VipsImage *in;$/;" m struct:_vipsImg
|
388
|
+
init_Header header.c /^init_Header( void )$/;" f
|
389
|
+
init_Image image.c /^init_Image(void)$/;" f
|
390
|
+
init_Image_colour image_colour.c /^init_Image_colour()$/;" f
|
391
|
+
init_Image_conversion image_conversion.c /^init_Image_conversion()$/;" f
|
392
|
+
init_Image_mosaicing image_mosaicing.c /^init_Image_mosaicing(void)$/;" f
|
393
|
+
init_Interpolator interpolator.c /^init_Interpolator(void)$/;" f
|
394
|
+
init_Mask mask.c /^init_Mask( void )$/;" f
|
395
|
+
init_Reader reader.c /^init_Reader(void)$/;" f
|
396
|
+
init_Writer writer.c /^init_Writer(void)$/;" f
|
397
|
+
init_vips_library ruby_vips.c /^init_vips_library()$/;" f file:
|
398
|
+
interp_description interpolator.c /^interp_description(VALUE obj)$/;" f file:
|
399
|
+
interp_lookup interpolator.c /^interp_lookup(VALUE itrp_sym)$/;" f
|
400
|
+
interp_nickname interpolator.c /^interp_nickname(VALUE obj)$/;" f file:
|
401
|
+
interp_register interpolator.c /^interp_register(VipsInterpolateClass *itrp, void *hash)$/;" f file:
|
402
|
+
interp_register_builtin interpolator.c /^interp_register_builtin()$/;" f file:
|
403
|
+
jpeg_buf_internal reader.c /^jpeg_buf_internal(VALUE obj, VALUE buf, VALUE shrink, VALUE fail)$/;" f file:
|
404
|
+
jpeg_buf_internal writer.c /^jpeg_buf_internal(VALUE obj, VALUE quality)$/;" f file:
|
405
|
+
jpeg_write_internal writer.c /^jpeg_write_internal(VALUE obj, VALUE path)$/;" f file:
|
406
|
+
mVIPS ruby_vips.c /^VALUE mVIPS, eVIPSError;$/;" v
|
407
|
+
mVIPSHeader header.c /^VALUE mVIPSHeader;$/;" v
|
408
|
+
magick_read_internal reader.c /^magick_read_internal(VALUE obj, VALUE path, VALUE flags)$/;" f file:
|
409
|
+
mask_alloc mask.c /^mask_alloc(VALUE klass)$/;" f
|
410
|
+
mask_arg2mask mask.c /^mask_arg2mask(VALUE arg, INTMASK **imask, DOUBLEMASK **dmask)$/;" f
|
411
|
+
mask_ary2dmask mask.c /^mask_ary2dmask(VALUE coeffs)$/;" f file:
|
412
|
+
mask_ary2imask mask.c /^mask_ary2imask(VALUE coeffs)$/;" f file:
|
413
|
+
mask_coeff mask.c /^mask_coeff(VALUE obj)$/;" f file:
|
414
|
+
mask_free mask.c /^mask_free(vipsMask *msk)$/;" f file:
|
415
|
+
mask_initialize mask.c /^mask_initialize(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
416
|
+
mask_int_p mask.c /^mask_int_p(VALUE obj)$/;" f file:
|
417
|
+
mask_offset mask.c /^mask_offset(VALUE obj)$/;" f file:
|
418
|
+
mask_scale mask.c /^mask_scale(VALUE obj)$/;" f file:
|
419
|
+
mask_to_image mask.c /^mask_to_image(VALUE obj)$/;" f file:
|
420
|
+
mask_xsize mask.c /^mask_xsize(VALUE obj)$/;" f file:
|
421
|
+
mask_ysize mask.c /^mask_ysize(VALUE obj)$/;" f file:
|
422
|
+
png_buf_internal writer.c /^png_buf_internal(VALUE obj, VALUE compression, VALUE interlace)$/;" f file:
|
423
|
+
png_write_internal writer.c /^png_write_internal(VALUE obj, VALUE path)$/;" f file:
|
424
|
+
ppm_write_internal writer.c /^ppm_write_internal(VALUE obj, VALUE path)$/;" f file:
|
425
|
+
raw_read_internal reader.c /^raw_read_internal(VALUE obj, VALUE path, VALUE width, VALUE height, VALUE bpp,$/;" f file:
|
426
|
+
rb_str_new_cstr ruby_vips.h 28;" d
|
427
|
+
reader_fmt_set reader.c /^reader_fmt_set(VALUE klass, const char* val)$/;" f file:
|
428
|
+
reader_get_fmt_class reader.c /^reader_get_fmt_class(VALUE klass)$/;" f
|
429
|
+
reader_read_internal reader.c /^reader_read_internal(VALUE obj, VALUE path, VALUE flags)$/;" f file:
|
430
|
+
reader_s_recognized_p reader.c /^reader_s_recognized_p(VALUE klass, VALUE path)$/;" f file:
|
431
|
+
ruby_vips_class_map_all ruby_vips.c /^ruby_vips_class_map_all( GType type, VipsClassMap fn, void *a )$/;" f
|
432
|
+
ruby_vips_type_map ruby_vips.c /^ruby_vips_type_map( GType base, VipsTypeMap2 fn, void *a, void *b )$/;" f file:
|
433
|
+
tiff_write_internal writer.c /^tiff_write_internal(VALUE obj, VALUE path)$/;" f file:
|
434
|
+
vipsImg image.h /^typedef struct _vipsImg vipsImg;$/;" t typeref:struct:_vipsImg
|
435
|
+
vipsMask mask.h /^typedef struct _vipsMask vipsMask;$/;" t typeref:struct:_vipsMask
|
436
|
+
vips_class_map_concrete_all ruby_vips.h 44;" d
|
437
|
+
vips_lib_error ruby_vips.c /^vips_lib_error()$/;" f
|
438
|
+
vips_s_debug_info ruby_vips.c /^vips_s_debug_info(VALUE obj)$/;" f file:
|
439
|
+
vips_s_version_array ruby_vips.c /^vips_s_version_array()$/;" f file:
|
440
|
+
vips_s_version_string ruby_vips.c /^vips_s_version_string()$/;" f file:
|
441
|
+
vips_write_internal writer.c /^vips_write_internal(VALUE obj, VALUE path)$/;" f file:
|
442
|
+
writer_exif_set writer.c /^writer_exif_set(VALUE obj, VALUE str)$/;" f file:
|
443
|
+
writer_icc_set writer.c /^writer_icc_set(VALUE obj, VALUE str)$/;" f file:
|
444
|
+
writer_image writer.c /^writer_image(VALUE obj)$/;" f file:
|
445
|
+
writer_initialize writer.c /^writer_initialize(int argc, VALUE *argv, VALUE obj)$/;" f file:
|
446
|
+
writer_meta_remove writer.c /^writer_meta_remove(VALUE obj, const char* name)$/;" f file:
|
447
|
+
writer_meta_set writer.c /^writer_meta_set(VALUE obj, const char* name, VALUE str)$/;" f file:
|
448
|
+
writer_remove_exif writer.c /^writer_remove_exif(VALUE obj)$/;" f file:
|
449
|
+
writer_remove_icc writer.c /^writer_remove_icc(VALUE obj)$/;" f file:
|
450
|
+
writer_write_internal writer.c /^writer_write_internal(VALUE obj, VALUE path)$/;" f file:
|
data/ext/writer.c
CHANGED
@@ -56,7 +56,7 @@ static VALUE
|
|
56
56
|
writer_meta_remove(VALUE obj, const char* name)
|
57
57
|
{
|
58
58
|
GetImg(obj, data, im);
|
59
|
-
#if
|
59
|
+
#if ATLEAST_VIPS( 7, 22 )
|
60
60
|
if (im_meta_remove(im, name))
|
61
61
|
return Qfalse;
|
62
62
|
#else
|
@@ -147,8 +147,23 @@ jpeg_buf_internal(VALUE obj, VALUE quality)
|
|
147
147
|
|
148
148
|
GetImg(obj, data, im);
|
149
149
|
|
150
|
+
#if ATLEAST_VIPS( 7, 28 )
|
151
|
+
{
|
152
|
+
size_t len;
|
153
|
+
|
154
|
+
if (vips_jpegsave_buffer(im, &buf, &len,
|
155
|
+
"Q", NUM2INT(quality),
|
156
|
+
NULL))
|
157
|
+
vips_lib_error();
|
158
|
+
|
159
|
+
/* Argh.
|
160
|
+
*/
|
161
|
+
length = len;
|
162
|
+
}
|
163
|
+
#else
|
150
164
|
if (im_vips2bufjpeg(im, NULL, NUM2INT(quality), &buf, &length))
|
151
165
|
vips_lib_error();
|
166
|
+
#endif
|
152
167
|
|
153
168
|
return rb_tainted_str_new(buf, length);
|
154
169
|
}
|
@@ -197,19 +212,25 @@ ppm_write_internal(VALUE obj, VALUE path)
|
|
197
212
|
static VALUE
|
198
213
|
png_buf_internal(VALUE obj, VALUE compression, VALUE interlace)
|
199
214
|
{
|
200
|
-
#if IM_MAJOR_VERSION > 7 || IM_MINOR_VERSION >= 23
|
201
215
|
char *buf;
|
202
216
|
size_t length;
|
203
217
|
GetImg(obj, data, im);
|
204
218
|
|
219
|
+
#if ATLEAST_VIPS( 7, 28 )
|
220
|
+
if (vips_pngsave_buffer(im, &buf, &length,
|
221
|
+
"compression", NUM2INT(compression),
|
222
|
+
"interlace", NUM2INT(interlace),
|
223
|
+
NULL))
|
224
|
+
vips_lib_error();
|
225
|
+
#elif ATLEAST_VIPS( 7, 23 )
|
205
226
|
if (im_vips2bufpng(im, NULL, NUM2INT(compression), NUM2INT(interlace),
|
206
227
|
&buf, &length))
|
207
228
|
vips_lib_error();
|
208
|
-
|
209
|
-
return rb_tainted_str_new(buf, length);
|
210
229
|
#else
|
211
230
|
rb_raise(eVIPSError, "This method is not implemented in your version of VIPS");
|
212
231
|
#endif
|
232
|
+
|
233
|
+
return rb_tainted_str_new(buf, length);
|
213
234
|
}
|
214
235
|
|
215
236
|
/* :nodoc: */
|
data/lib/vips/reader.rb
CHANGED
@@ -65,7 +65,7 @@ module VIPS
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def read
|
68
|
-
str = "#{@path}:#{shrink_factor}"
|
68
|
+
str = "#{@path}:#{@shrink_factor}"
|
69
69
|
str << ","
|
70
70
|
str << "fail" if @fail_on_warn
|
71
71
|
|
@@ -79,6 +79,18 @@ module VIPS
|
|
79
79
|
@_im = read_retry str, seq
|
80
80
|
end
|
81
81
|
|
82
|
+
def b_to_i(b)
|
83
|
+
if b
|
84
|
+
1
|
85
|
+
else
|
86
|
+
0
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def read_buffer
|
91
|
+
@_im = buf_internal @path, @shrink_factor, b_to_i(@fail_on_warn)
|
92
|
+
end
|
93
|
+
|
82
94
|
# Shrink the jpeg while reading from disk. This means that the entire image
|
83
95
|
# never has to be loaded in memory. Shrink factor can be 1 (no shrink), 2,
|
84
96
|
# 4, or 8.
|
@@ -183,16 +195,23 @@ module VIPS
|
|
183
195
|
end
|
184
196
|
|
185
197
|
def read
|
186
|
-
|
198
|
+
# some old versions of vips (eg. 7.26) have a bug in the png reader where
|
199
|
+
# the ':' is not tripped from the filename in the ispng test ... only put
|
200
|
+
# the ':' there if we have to
|
201
|
+
str = "#{@path}"
|
187
202
|
|
188
203
|
seq = 0
|
189
204
|
if VIPS.sequential_mode_supported?
|
190
|
-
str << "sequential" if @sequential
|
205
|
+
str << ":sequential" if @sequential
|
191
206
|
seq = 1
|
192
207
|
end
|
193
208
|
|
194
209
|
@_im = read_retry str, seq
|
195
210
|
end
|
211
|
+
|
212
|
+
def read_buffer
|
213
|
+
@_im = buf_internal @path
|
214
|
+
end
|
196
215
|
end
|
197
216
|
|
198
217
|
class Image
|
data/lib/vips/version.rb
CHANGED
data/ruby-vips.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "ruby-vips"
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Timothy Elliott", "John Cupitt"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-06-25"
|
13
13
|
s.description = "Ruby extension for the vips image processing library."
|
14
14
|
s.email = "jcupitt@gmail.com"
|
15
15
|
s.extensions = ["ext/extconf.rb"]
|
@@ -57,6 +57,7 @@ Gem::Specification.new do |s|
|
|
57
57
|
"ext/reader.h",
|
58
58
|
"ext/ruby_vips.c",
|
59
59
|
"ext/ruby_vips.h",
|
60
|
+
"ext/tags",
|
60
61
|
"ext/writer.c",
|
61
62
|
"ext/writer.h",
|
62
63
|
"lib/vips.rb",
|
@@ -68,6 +69,7 @@ Gem::Specification.new do |s|
|
|
68
69
|
]
|
69
70
|
s.homepage = "http://github.com/jcupitt/ruby-vips"
|
70
71
|
s.licenses = ["MIT"]
|
72
|
+
s.rdoc_options = ["--title", "ruby-vips \#{version}", "ext"]
|
71
73
|
s.require_paths = ["lib"]
|
72
74
|
s.rubygems_version = "1.8.23"
|
73
75
|
s.summary = "ruby-vips is a ruby extension for vips. It is extremely fast and it can process huge images without requiring the entire image to be loaded into memory."
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-vips
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-06-25 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rdoc
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- ext/reader.h
|
125
125
|
- ext/ruby_vips.c
|
126
126
|
- ext/ruby_vips.h
|
127
|
+
- ext/tags
|
127
128
|
- ext/writer.c
|
128
129
|
- ext/writer.h
|
129
130
|
- lib/vips.rb
|
@@ -138,7 +139,10 @@ homepage: http://github.com/jcupitt/ruby-vips
|
|
138
139
|
licenses:
|
139
140
|
- MIT
|
140
141
|
post_install_message:
|
141
|
-
rdoc_options:
|
142
|
+
rdoc_options:
|
143
|
+
- --title
|
144
|
+
- ! 'ruby-vips #{version}'
|
145
|
+
- ext
|
142
146
|
require_paths:
|
143
147
|
- lib
|
144
148
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -149,7 +153,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
149
153
|
version: '0'
|
150
154
|
segments:
|
151
155
|
- 0
|
152
|
-
hash:
|
156
|
+
hash: 1280497846562142382
|
153
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
158
|
none: false
|
155
159
|
requirements:
|