1 module vips.operations;
2 
3 /**
4 
5 THIS FILE IS AUTO-GENERATED, DO NOT EDIT
6 
7 You can regenerate this file by running the gen-operators.d script
8 
9 rdmd gen-operators.d
10 
11 Operators were generated for the following Vips version
12 8.7.1
13 
14 */
15 
16 import vips.base;
17 import vips.bindings;
18 
19 void system(string cmd_format, VOption options = VOption())
20 {
21 	baseOp("system",
22 		options
23 			.set("cmd-format", cmd_format)
24 	);
25 }
26 
27 VImage add(VImage left, VImage right, VOption options = VOption())
28 {
29 	VImage output;
30 	baseOp("add",
31 		options
32 			.set("left", left)
33 			.set("right", right)
34 			.set("out", &output)
35 	);
36 	return output;
37 }
38 
39 VImage subtract(VImage left, VImage right, VOption options = VOption())
40 {
41 	VImage output;
42 	baseOp("subtract",
43 		options
44 			.set("left", left)
45 			.set("right", right)
46 			.set("out", &output)
47 	);
48 	return output;
49 }
50 
51 VImage multiply(VImage left, VImage right, VOption options = VOption())
52 {
53 	VImage output;
54 	baseOp("multiply",
55 		options
56 			.set("left", left)
57 			.set("right", right)
58 			.set("out", &output)
59 	);
60 	return output;
61 }
62 
63 VImage divide(VImage left, VImage right, VOption options = VOption())
64 {
65 	VImage output;
66 	baseOp("divide",
67 		options
68 			.set("left", left)
69 			.set("right", right)
70 			.set("out", &output)
71 	);
72 	return output;
73 }
74 
75 VImage relational(VImage left, VImage right, VipsOperationRelational relational, VOption options = VOption())
76 {
77 	VImage output;
78 	baseOp("relational",
79 		options
80 			.set("left", left)
81 			.set("right", right)
82 			.set("out", &output)
83 			.set("relational", relational)
84 	);
85 	return output;
86 }
87 
88 VImage remainder(VImage left, VImage right, VOption options = VOption())
89 {
90 	VImage output;
91 	baseOp("remainder",
92 		options
93 			.set("left", left)
94 			.set("right", right)
95 			.set("out", &output)
96 	);
97 	return output;
98 }
99 
100 VImage boolean(VImage left, VImage right, VipsOperationBoolean boolean, VOption options = VOption())
101 {
102 	VImage output;
103 	baseOp("boolean",
104 		options
105 			.set("left", left)
106 			.set("right", right)
107 			.set("out", &output)
108 			.set("boolean", boolean)
109 	);
110 	return output;
111 }
112 
113 VImage math2(VImage left, VImage right, VipsOperationMath2 math2, VOption options = VOption())
114 {
115 	VImage output;
116 	baseOp("math2",
117 		options
118 			.set("left", left)
119 			.set("right", right)
120 			.set("out", &output)
121 			.set("math2", math2)
122 	);
123 	return output;
124 }
125 
126 VImage complex2(VImage left, VImage right, VipsOperationComplex2 cmplx, VOption options = VOption())
127 {
128 	VImage output;
129 	baseOp("complex2",
130 		options
131 			.set("left", left)
132 			.set("right", right)
133 			.set("out", &output)
134 			.set("cmplx", cmplx)
135 	);
136 	return output;
137 }
138 
139 VImage complexform(VImage left, VImage right, VOption options = VOption())
140 {
141 	VImage output;
142 	baseOp("complexform",
143 		options
144 			.set("left", left)
145 			.set("right", right)
146 			.set("out", &output)
147 	);
148 	return output;
149 }
150 
151 VImage sum(VImage[] input, VOption options = VOption())
152 {
153 	VImage output;
154 	baseOp("sum",
155 		options
156 			.set("in", input)
157 			.set("out", &output)
158 	);
159 	return output;
160 }
161 
162 VImage invert(VImage input, VOption options = VOption())
163 {
164 	VImage output;
165 	baseOp("invert",
166 		options
167 			.set("in", input)
168 			.set("out", &output)
169 	);
170 	return output;
171 }
172 
173 VImage linear(VImage input, double[] a, double[] b, VOption options = VOption())
174 {
175 	VImage output;
176 	baseOp("linear",
177 		options
178 			.set("in", input)
179 			.set("out", &output)
180 			.set("a", a)
181 			.set("b", b)
182 	);
183 	return output;
184 }
185 
186 VImage math(VImage input, VipsOperationMath math, VOption options = VOption())
187 {
188 	VImage output;
189 	baseOp("math",
190 		options
191 			.set("in", input)
192 			.set("out", &output)
193 			.set("math", math)
194 	);
195 	return output;
196 }
197 
198 VImage abs(VImage input, VOption options = VOption())
199 {
200 	VImage output;
201 	baseOp("abs",
202 		options
203 			.set("in", input)
204 			.set("out", &output)
205 	);
206 	return output;
207 }
208 
209 VImage sign(VImage input, VOption options = VOption())
210 {
211 	VImage output;
212 	baseOp("sign",
213 		options
214 			.set("in", input)
215 			.set("out", &output)
216 	);
217 	return output;
218 }
219 
220 VImage round(VImage input, VipsOperationRound round, VOption options = VOption())
221 {
222 	VImage output;
223 	baseOp("round",
224 		options
225 			.set("in", input)
226 			.set("out", &output)
227 			.set("round", round)
228 	);
229 	return output;
230 }
231 
232 VImage relational_const(VImage input, VipsOperationRelational relational, double[] c, VOption options = VOption())
233 {
234 	VImage output;
235 	baseOp("relational_const",
236 		options
237 			.set("in", input)
238 			.set("out", &output)
239 			.set("relational", relational)
240 			.set("c", c)
241 	);
242 	return output;
243 }
244 
245 VImage remainder_const(VImage input, double[] c, VOption options = VOption())
246 {
247 	VImage output;
248 	baseOp("remainder_const",
249 		options
250 			.set("in", input)
251 			.set("out", &output)
252 			.set("c", c)
253 	);
254 	return output;
255 }
256 
257 VImage boolean_const(VImage input, VipsOperationBoolean boolean, double[] c, VOption options = VOption())
258 {
259 	VImage output;
260 	baseOp("boolean_const",
261 		options
262 			.set("in", input)
263 			.set("out", &output)
264 			.set("boolean", boolean)
265 			.set("c", c)
266 	);
267 	return output;
268 }
269 
270 VImage math2_const(VImage input, VipsOperationMath2 math2, double[] c, VOption options = VOption())
271 {
272 	VImage output;
273 	baseOp("math2_const",
274 		options
275 			.set("in", input)
276 			.set("out", &output)
277 			.set("math2", math2)
278 			.set("c", c)
279 	);
280 	return output;
281 }
282 
283 VImage complex(VImage input, VipsOperationComplex cmplx, VOption options = VOption())
284 {
285 	VImage output;
286 	baseOp("complex",
287 		options
288 			.set("in", input)
289 			.set("out", &output)
290 			.set("cmplx", cmplx)
291 	);
292 	return output;
293 }
294 
295 VImage complexget(VImage input, VipsOperationComplexget get, VOption options = VOption())
296 {
297 	VImage output;
298 	baseOp("complexget",
299 		options
300 			.set("in", input)
301 			.set("out", &output)
302 			.set("get", get)
303 	);
304 	return output;
305 }
306 
307 double avg(VImage input, VOption options = VOption())
308 {
309 	double output;
310 	baseOp("avg",
311 		options
312 			.set("in", input)
313 			.set("out", &output)
314 	);
315 	return output;
316 }
317 
318 double min(VImage input, VOption options = VOption())
319 {
320 	double output;
321 	baseOp("min",
322 		options
323 			.set("in", input)
324 			.set("out", &output)
325 	);
326 	return output;
327 }
328 
329 double max(VImage input, VOption options = VOption())
330 {
331 	double output;
332 	baseOp("max",
333 		options
334 			.set("in", input)
335 			.set("out", &output)
336 	);
337 	return output;
338 }
339 
340 double deviate(VImage input, VOption options = VOption())
341 {
342 	double output;
343 	baseOp("deviate",
344 		options
345 			.set("in", input)
346 			.set("out", &output)
347 	);
348 	return output;
349 }
350 
351 VImage stats(VImage input, VOption options = VOption())
352 {
353 	VImage output;
354 	baseOp("stats",
355 		options
356 			.set("in", input)
357 			.set("out", &output)
358 	);
359 	return output;
360 }
361 
362 VImage hist_find(VImage input, VOption options = VOption())
363 {
364 	VImage output;
365 	baseOp("hist_find",
366 		options
367 			.set("in", input)
368 			.set("out", &output)
369 	);
370 	return output;
371 }
372 
373 VImage hist_find_ndim(VImage input, VOption options = VOption())
374 {
375 	VImage output;
376 	baseOp("hist_find_ndim",
377 		options
378 			.set("in", input)
379 			.set("out", &output)
380 	);
381 	return output;
382 }
383 
384 VImage hist_find_indexed(VImage input, VImage index, VOption options = VOption())
385 {
386 	VImage output;
387 	baseOp("hist_find_indexed",
388 		options
389 			.set("in", input)
390 			.set("index", index)
391 			.set("out", &output)
392 	);
393 	return output;
394 }
395 
396 VImage hough_line(VImage input, VOption options = VOption())
397 {
398 	VImage output;
399 	baseOp("hough_line",
400 		options
401 			.set("in", input)
402 			.set("out", &output)
403 	);
404 	return output;
405 }
406 
407 VImage hough_circle(VImage input, VOption options = VOption())
408 {
409 	VImage output;
410 	baseOp("hough_circle",
411 		options
412 			.set("in", input)
413 			.set("out", &output)
414 	);
415 	return output;
416 }
417 
418 VImage project(VImage input, out VImage rows, VOption options = VOption())
419 {
420 	VImage columns;
421 	baseOp("project",
422 		options
423 			.set("in", input)
424 			.set("columns", &columns)
425 			.set("rows", &rows)
426 	);
427 	return columns;
428 }
429 
430 VImage profile(VImage input, out VImage rows, VOption options = VOption())
431 {
432 	VImage columns;
433 	baseOp("profile",
434 		options
435 			.set("in", input)
436 			.set("columns", &columns)
437 			.set("rows", &rows)
438 	);
439 	return columns;
440 }
441 
442 VImage measure(VImage input, int h, int v, VOption options = VOption())
443 {
444 	VImage output;
445 	baseOp("measure",
446 		options
447 			.set("in", input)
448 			.set("out", &output)
449 			.set("h", h)
450 			.set("v", v)
451 	);
452 	return output;
453 }
454 
455 double[] getpoint(VImage input, int x, int y, VOption options = VOption())
456 {
457 	double[] out_array;
458 	baseOp("getpoint",
459 		options
460 			.set("in", input)
461 			.set("out-array", &out_array)
462 			.set("x", x)
463 			.set("y", y)
464 	);
465 	return out_array;
466 }
467 
468 int find_trim(VImage input, out int top, out int width, out int height, VOption options = VOption())
469 {
470 	int left;
471 	baseOp("find_trim",
472 		options
473 			.set("in", input)
474 			.set("left", &left)
475 			.set("top", &top)
476 			.set("width", &width)
477 			.set("height", &height)
478 	);
479 	return left;
480 }
481 
482 VImage copy(VImage input, VOption options = VOption())
483 {
484 	VImage output;
485 	baseOp("copy",
486 		options
487 			.set("in", input)
488 			.set("out", &output)
489 	);
490 	return output;
491 }
492 
493 VImage tilecache(VImage input, VOption options = VOption())
494 {
495 	VImage output;
496 	baseOp("tilecache",
497 		options
498 			.set("in", input)
499 			.set("out", &output)
500 	);
501 	return output;
502 }
503 
504 VImage linecache(VImage input, VOption options = VOption())
505 {
506 	VImage output;
507 	baseOp("linecache",
508 		options
509 			.set("in", input)
510 			.set("out", &output)
511 	);
512 	return output;
513 }
514 
515 VImage sequential(VImage input, VOption options = VOption())
516 {
517 	VImage output;
518 	baseOp("sequential",
519 		options
520 			.set("in", input)
521 			.set("out", &output)
522 	);
523 	return output;
524 }
525 
526 VImage cache(VImage input, VOption options = VOption())
527 {
528 	VImage output;
529 	baseOp("cache",
530 		options
531 			.set("in", input)
532 			.set("out", &output)
533 	);
534 	return output;
535 }
536 
537 VImage embed(VImage input, int x, int y, int width, int height, VOption options = VOption())
538 {
539 	VImage output;
540 	baseOp("embed",
541 		options
542 			.set("in", input)
543 			.set("out", &output)
544 			.set("x", x)
545 			.set("y", y)
546 			.set("width", width)
547 			.set("height", height)
548 	);
549 	return output;
550 }
551 
552 VImage gravity(VImage input, VipsCompassDirection direction, int width, int height, VOption options = VOption())
553 {
554 	VImage output;
555 	baseOp("gravity",
556 		options
557 			.set("in", input)
558 			.set("out", &output)
559 			.set("direction", direction)
560 			.set("width", width)
561 			.set("height", height)
562 	);
563 	return output;
564 }
565 
566 VImage flip(VImage input, VipsDirection direction, VOption options = VOption())
567 {
568 	VImage output;
569 	baseOp("flip",
570 		options
571 			.set("in", input)
572 			.set("out", &output)
573 			.set("direction", direction)
574 	);
575 	return output;
576 }
577 
578 VImage insert(VImage main, VImage sub, int x, int y, VOption options = VOption())
579 {
580 	VImage output;
581 	baseOp("insert",
582 		options
583 			.set("main", main)
584 			.set("sub", sub)
585 			.set("out", &output)
586 			.set("x", x)
587 			.set("y", y)
588 	);
589 	return output;
590 }
591 
592 VImage join(VImage in1, VImage in2, VipsDirection direction, VOption options = VOption())
593 {
594 	VImage output;
595 	baseOp("join",
596 		options
597 			.set("in1", in1)
598 			.set("in2", in2)
599 			.set("out", &output)
600 			.set("direction", direction)
601 	);
602 	return output;
603 }
604 
605 VImage arrayjoin(VImage[] input, VOption options = VOption())
606 {
607 	VImage output;
608 	baseOp("arrayjoin",
609 		options
610 			.set("in", input)
611 			.set("out", &output)
612 	);
613 	return output;
614 }
615 
616 VImage extract_area(VImage input, int left, int top, int width, int height, VOption options = VOption())
617 {
618 	VImage output;
619 	baseOp("extract_area",
620 		options
621 			.set("input", input)
622 			.set("out", &output)
623 			.set("left", left)
624 			.set("top", top)
625 			.set("width", width)
626 			.set("height", height)
627 	);
628 	return output;
629 }
630 
631 VImage smartcrop(VImage input, int width, int height, VOption options = VOption())
632 {
633 	VImage output;
634 	baseOp("smartcrop",
635 		options
636 			.set("input", input)
637 			.set("out", &output)
638 			.set("width", width)
639 			.set("height", height)
640 	);
641 	return output;
642 }
643 
644 VImage extract_band(VImage input, int band, VOption options = VOption())
645 {
646 	VImage output;
647 	baseOp("extract_band",
648 		options
649 			.set("in", input)
650 			.set("out", &output)
651 			.set("band", band)
652 	);
653 	return output;
654 }
655 
656 VImage bandjoin(VImage[] input, VOption options = VOption())
657 {
658 	VImage output;
659 	baseOp("bandjoin",
660 		options
661 			.set("in", input)
662 			.set("out", &output)
663 	);
664 	return output;
665 }
666 
667 VImage bandjoin_const(VImage input, double[] c, VOption options = VOption())
668 {
669 	VImage output;
670 	baseOp("bandjoin_const",
671 		options
672 			.set("in", input)
673 			.set("out", &output)
674 			.set("c", c)
675 	);
676 	return output;
677 }
678 
679 VImage bandrank(VImage[] input, VOption options = VOption())
680 {
681 	VImage output;
682 	baseOp("bandrank",
683 		options
684 			.set("in", input)
685 			.set("out", &output)
686 	);
687 	return output;
688 }
689 
690 VImage bandmean(VImage input, VOption options = VOption())
691 {
692 	VImage output;
693 	baseOp("bandmean",
694 		options
695 			.set("in", input)
696 			.set("out", &output)
697 	);
698 	return output;
699 }
700 
701 VImage bandbool(VImage input, VipsOperationBoolean boolean, VOption options = VOption())
702 {
703 	VImage output;
704 	baseOp("bandbool",
705 		options
706 			.set("in", input)
707 			.set("out", &output)
708 			.set("boolean", boolean)
709 	);
710 	return output;
711 }
712 
713 VImage replicate(VImage input, int across, int down, VOption options = VOption())
714 {
715 	VImage output;
716 	baseOp("replicate",
717 		options
718 			.set("in", input)
719 			.set("out", &output)
720 			.set("across", across)
721 			.set("down", down)
722 	);
723 	return output;
724 }
725 
726 VImage vipsCast(VImage input, VipsBandFormat format, VOption options = VOption())
727 {
728 	VImage output;
729 	baseOp("cast",
730 		options
731 			.set("in", input)
732 			.set("out", &output)
733 			.set("format", format)
734 	);
735 	return output;
736 }
737 
738 VImage rot(VImage input, VipsAngle angle, VOption options = VOption())
739 {
740 	VImage output;
741 	baseOp("rot",
742 		options
743 			.set("in", input)
744 			.set("out", &output)
745 			.set("angle", angle)
746 	);
747 	return output;
748 }
749 
750 VImage rot45(VImage input, VOption options = VOption())
751 {
752 	VImage output;
753 	baseOp("rot45",
754 		options
755 			.set("in", input)
756 			.set("out", &output)
757 	);
758 	return output;
759 }
760 
761 VImage autorot(VImage input, VOption options = VOption())
762 {
763 	VImage output;
764 	baseOp("autorot",
765 		options
766 			.set("in", input)
767 			.set("out", &output)
768 	);
769 	return output;
770 }
771 
772 VImage ifthenelse(VImage cond, VImage in1, VImage in2, VOption options = VOption())
773 {
774 	VImage output;
775 	baseOp("ifthenelse",
776 		options
777 			.set("cond", cond)
778 			.set("in1", in1)
779 			.set("in2", in2)
780 			.set("out", &output)
781 	);
782 	return output;
783 }
784 
785 VImage recomb(VImage input, VImage m, VOption options = VOption())
786 {
787 	VImage output;
788 	baseOp("recomb",
789 		options
790 			.set("in", input)
791 			.set("out", &output)
792 			.set("m", m)
793 	);
794 	return output;
795 }
796 
797 VImage bandfold(VImage input, VOption options = VOption())
798 {
799 	VImage output;
800 	baseOp("bandfold",
801 		options
802 			.set("in", input)
803 			.set("out", &output)
804 	);
805 	return output;
806 }
807 
808 VImage bandunfold(VImage input, VOption options = VOption())
809 {
810 	VImage output;
811 	baseOp("bandunfold",
812 		options
813 			.set("in", input)
814 			.set("out", &output)
815 	);
816 	return output;
817 }
818 
819 VImage flatten(VImage input, VOption options = VOption())
820 {
821 	VImage output;
822 	baseOp("flatten",
823 		options
824 			.set("in", input)
825 			.set("out", &output)
826 	);
827 	return output;
828 }
829 
830 VImage premultiply(VImage input, VOption options = VOption())
831 {
832 	VImage output;
833 	baseOp("premultiply",
834 		options
835 			.set("in", input)
836 			.set("out", &output)
837 	);
838 	return output;
839 }
840 
841 VImage unpremultiply(VImage input, VOption options = VOption())
842 {
843 	VImage output;
844 	baseOp("unpremultiply",
845 		options
846 			.set("in", input)
847 			.set("out", &output)
848 	);
849 	return output;
850 }
851 
852 VImage grid(VImage input, int tile_height, int across, int down, VOption options = VOption())
853 {
854 	VImage output;
855 	baseOp("grid",
856 		options
857 			.set("in", input)
858 			.set("out", &output)
859 			.set("tile-height", tile_height)
860 			.set("across", across)
861 			.set("down", down)
862 	);
863 	return output;
864 }
865 
866 VImage transpose3d(VImage input, VOption options = VOption())
867 {
868 	VImage output;
869 	baseOp("transpose3d",
870 		options
871 			.set("in", input)
872 			.set("out", &output)
873 	);
874 	return output;
875 }
876 
877 VImage scale(VImage input, VOption options = VOption())
878 {
879 	VImage output;
880 	baseOp("scale",
881 		options
882 			.set("in", input)
883 			.set("out", &output)
884 	);
885 	return output;
886 }
887 
888 VImage wrap(VImage input, VOption options = VOption())
889 {
890 	VImage output;
891 	baseOp("wrap",
892 		options
893 			.set("in", input)
894 			.set("out", &output)
895 	);
896 	return output;
897 }
898 
899 VImage zoom(VImage input, int xfac, int yfac, VOption options = VOption())
900 {
901 	VImage output;
902 	baseOp("zoom",
903 		options
904 			.set("input", input)
905 			.set("out", &output)
906 			.set("xfac", xfac)
907 			.set("yfac", yfac)
908 	);
909 	return output;
910 }
911 
912 VImage subsample(VImage input, int xfac, int yfac, VOption options = VOption())
913 {
914 	VImage output;
915 	baseOp("subsample",
916 		options
917 			.set("input", input)
918 			.set("out", &output)
919 			.set("xfac", xfac)
920 			.set("yfac", yfac)
921 	);
922 	return output;
923 }
924 
925 VImage msb(VImage input, VOption options = VOption())
926 {
927 	VImage output;
928 	baseOp("msb",
929 		options
930 			.set("in", input)
931 			.set("out", &output)
932 	);
933 	return output;
934 }
935 
936 VImage byteswap(VImage input, VOption options = VOption())
937 {
938 	VImage output;
939 	baseOp("byteswap",
940 		options
941 			.set("in", input)
942 			.set("out", &output)
943 	);
944 	return output;
945 }
946 
947 VImage falsecolour(VImage input, VOption options = VOption())
948 {
949 	VImage output;
950 	baseOp("falsecolour",
951 		options
952 			.set("in", input)
953 			.set("out", &output)
954 	);
955 	return output;
956 }
957 
958 VImage gamma(VImage input, VOption options = VOption())
959 {
960 	VImage output;
961 	baseOp("gamma",
962 		options
963 			.set("in", input)
964 			.set("out", &output)
965 	);
966 	return output;
967 }
968 
969 VImage composite(VImage[] input, int[] mode, VOption options = VOption())
970 {
971 	VImage output;
972 	baseOp("composite",
973 		options
974 			.set("in", input)
975 			.set("out", &output)
976 			.set("mode", mode)
977 	);
978 	return output;
979 }
980 
981 VImage composite2(VImage base, VImage overlay, VipsBlendMode mode, VOption options = VOption())
982 {
983 	VImage output;
984 	baseOp("composite2",
985 		options
986 			.set("base", base)
987 			.set("overlay", overlay)
988 			.set("out", &output)
989 			.set("mode", mode)
990 	);
991 	return output;
992 }
993 
994 VImage black(int width, int height, VOption options = VOption())
995 {
996 	VImage output;
997 	baseOp("black",
998 		options
999 			.set("out", &output)
1000 			.set("width", width)
1001 			.set("height", height)
1002 	);
1003 	return output;
1004 }
1005 
1006 VImage gaussnoise(int width, int height, VOption options = VOption())
1007 {
1008 	VImage output;
1009 	baseOp("gaussnoise",
1010 		options
1011 			.set("out", &output)
1012 			.set("width", width)
1013 			.set("height", height)
1014 	);
1015 	return output;
1016 }
1017 
1018 VImage text(string text, VOption options = VOption())
1019 {
1020 	VImage output;
1021 	baseOp("text",
1022 		options
1023 			.set("out", &output)
1024 			.set("text", text)
1025 	);
1026 	return output;
1027 }
1028 
1029 VImage xyz(int width, int height, VOption options = VOption())
1030 {
1031 	VImage output;
1032 	baseOp("xyz",
1033 		options
1034 			.set("out", &output)
1035 			.set("width", width)
1036 			.set("height", height)
1037 	);
1038 	return output;
1039 }
1040 
1041 VImage gaussmat(double sigma, double min_ampl, VOption options = VOption())
1042 {
1043 	VImage output;
1044 	baseOp("gaussmat",
1045 		options
1046 			.set("out", &output)
1047 			.set("sigma", sigma)
1048 			.set("min-ampl", min_ampl)
1049 	);
1050 	return output;
1051 }
1052 
1053 VImage logmat(double sigma, double min_ampl, VOption options = VOption())
1054 {
1055 	VImage output;
1056 	baseOp("logmat",
1057 		options
1058 			.set("out", &output)
1059 			.set("sigma", sigma)
1060 			.set("min-ampl", min_ampl)
1061 	);
1062 	return output;
1063 }
1064 
1065 VImage eye(int width, int height, VOption options = VOption())
1066 {
1067 	VImage output;
1068 	baseOp("eye",
1069 		options
1070 			.set("out", &output)
1071 			.set("width", width)
1072 			.set("height", height)
1073 	);
1074 	return output;
1075 }
1076 
1077 VImage grey(int width, int height, VOption options = VOption())
1078 {
1079 	VImage output;
1080 	baseOp("grey",
1081 		options
1082 			.set("out", &output)
1083 			.set("width", width)
1084 			.set("height", height)
1085 	);
1086 	return output;
1087 }
1088 
1089 VImage zone(int width, int height, VOption options = VOption())
1090 {
1091 	VImage output;
1092 	baseOp("zone",
1093 		options
1094 			.set("out", &output)
1095 			.set("width", width)
1096 			.set("height", height)
1097 	);
1098 	return output;
1099 }
1100 
1101 VImage sines(int width, int height, VOption options = VOption())
1102 {
1103 	VImage output;
1104 	baseOp("sines",
1105 		options
1106 			.set("out", &output)
1107 			.set("width", width)
1108 			.set("height", height)
1109 	);
1110 	return output;
1111 }
1112 
1113 VImage mask_ideal(int width, int height, double frequency_cutoff, VOption options = VOption())
1114 {
1115 	VImage output;
1116 	baseOp("mask_ideal",
1117 		options
1118 			.set("out", &output)
1119 			.set("width", width)
1120 			.set("height", height)
1121 			.set("frequency-cutoff", frequency_cutoff)
1122 	);
1123 	return output;
1124 }
1125 
1126 VImage mask_ideal_ring(int width, int height, double frequency_cutoff, double ringwidth, VOption options = VOption())
1127 {
1128 	VImage output;
1129 	baseOp("mask_ideal_ring",
1130 		options
1131 			.set("out", &output)
1132 			.set("width", width)
1133 			.set("height", height)
1134 			.set("frequency-cutoff", frequency_cutoff)
1135 			.set("ringwidth", ringwidth)
1136 	);
1137 	return output;
1138 }
1139 
1140 VImage mask_ideal_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption options = VOption())
1141 {
1142 	VImage output;
1143 	baseOp("mask_ideal_band",
1144 		options
1145 			.set("out", &output)
1146 			.set("width", width)
1147 			.set("height", height)
1148 			.set("frequency-cutoff-x", frequency_cutoff_x)
1149 			.set("frequency-cutoff-y", frequency_cutoff_y)
1150 			.set("radius", radius)
1151 	);
1152 	return output;
1153 }
1154 
1155 VImage mask_butterworth(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption options = VOption())
1156 {
1157 	VImage output;
1158 	baseOp("mask_butterworth",
1159 		options
1160 			.set("out", &output)
1161 			.set("width", width)
1162 			.set("height", height)
1163 			.set("order", order)
1164 			.set("frequency-cutoff", frequency_cutoff)
1165 			.set("amplitude-cutoff", amplitude_cutoff)
1166 	);
1167 	return output;
1168 }
1169 
1170 VImage mask_butterworth_ring(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption options = VOption())
1171 {
1172 	VImage output;
1173 	baseOp("mask_butterworth_ring",
1174 		options
1175 			.set("out", &output)
1176 			.set("width", width)
1177 			.set("height", height)
1178 			.set("order", order)
1179 			.set("frequency-cutoff", frequency_cutoff)
1180 			.set("amplitude-cutoff", amplitude_cutoff)
1181 			.set("ringwidth", ringwidth)
1182 	);
1183 	return output;
1184 }
1185 
1186 VImage mask_butterworth_band(int width, int height, double order, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption options = VOption())
1187 {
1188 	VImage output;
1189 	baseOp("mask_butterworth_band",
1190 		options
1191 			.set("out", &output)
1192 			.set("width", width)
1193 			.set("height", height)
1194 			.set("order", order)
1195 			.set("frequency-cutoff-x", frequency_cutoff_x)
1196 			.set("frequency-cutoff-y", frequency_cutoff_y)
1197 			.set("radius", radius)
1198 			.set("amplitude-cutoff", amplitude_cutoff)
1199 	);
1200 	return output;
1201 }
1202 
1203 VImage mask_gaussian(int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption options = VOption())
1204 {
1205 	VImage output;
1206 	baseOp("mask_gaussian",
1207 		options
1208 			.set("out", &output)
1209 			.set("width", width)
1210 			.set("height", height)
1211 			.set("frequency-cutoff", frequency_cutoff)
1212 			.set("amplitude-cutoff", amplitude_cutoff)
1213 	);
1214 	return output;
1215 }
1216 
1217 VImage mask_gaussian_ring(int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption options = VOption())
1218 {
1219 	VImage output;
1220 	baseOp("mask_gaussian_ring",
1221 		options
1222 			.set("out", &output)
1223 			.set("width", width)
1224 			.set("height", height)
1225 			.set("frequency-cutoff", frequency_cutoff)
1226 			.set("amplitude-cutoff", amplitude_cutoff)
1227 			.set("ringwidth", ringwidth)
1228 	);
1229 	return output;
1230 }
1231 
1232 VImage mask_gaussian_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption options = VOption())
1233 {
1234 	VImage output;
1235 	baseOp("mask_gaussian_band",
1236 		options
1237 			.set("out", &output)
1238 			.set("width", width)
1239 			.set("height", height)
1240 			.set("frequency-cutoff-x", frequency_cutoff_x)
1241 			.set("frequency-cutoff-y", frequency_cutoff_y)
1242 			.set("radius", radius)
1243 			.set("amplitude-cutoff", amplitude_cutoff)
1244 	);
1245 	return output;
1246 }
1247 
1248 VImage mask_fractal(int width, int height, double fractal_dimension, VOption options = VOption())
1249 {
1250 	VImage output;
1251 	baseOp("mask_fractal",
1252 		options
1253 			.set("out", &output)
1254 			.set("width", width)
1255 			.set("height", height)
1256 			.set("fractal-dimension", fractal_dimension)
1257 	);
1258 	return output;
1259 }
1260 
1261 VImage buildlut(VImage input, VOption options = VOption())
1262 {
1263 	VImage output;
1264 	baseOp("buildlut",
1265 		options
1266 			.set("in", input)
1267 			.set("out", &output)
1268 	);
1269 	return output;
1270 }
1271 
1272 VImage invertlut(VImage input, VOption options = VOption())
1273 {
1274 	VImage output;
1275 	baseOp("invertlut",
1276 		options
1277 			.set("in", input)
1278 			.set("out", &output)
1279 	);
1280 	return output;
1281 }
1282 
1283 VImage tonelut(VOption options = VOption())
1284 {
1285 	VImage output;
1286 	baseOp("tonelut",
1287 		options
1288 			.set("out", &output)
1289 	);
1290 	return output;
1291 }
1292 
1293 VImage identity(VOption options = VOption())
1294 {
1295 	VImage output;
1296 	baseOp("identity",
1297 		options
1298 			.set("out", &output)
1299 	);
1300 	return output;
1301 }
1302 
1303 VImage fractsurf(int width, int height, double fractal_dimension, VOption options = VOption())
1304 {
1305 	VImage output;
1306 	baseOp("fractsurf",
1307 		options
1308 			.set("out", &output)
1309 			.set("width", width)
1310 			.set("height", height)
1311 			.set("fractal-dimension", fractal_dimension)
1312 	);
1313 	return output;
1314 }
1315 
1316 VImage worley(int width, int height, VOption options = VOption())
1317 {
1318 	VImage output;
1319 	baseOp("worley",
1320 		options
1321 			.set("out", &output)
1322 			.set("width", width)
1323 			.set("height", height)
1324 	);
1325 	return output;
1326 }
1327 
1328 VImage perlin(int width, int height, VOption options = VOption())
1329 {
1330 	VImage output;
1331 	baseOp("perlin",
1332 		options
1333 			.set("out", &output)
1334 			.set("width", width)
1335 			.set("height", height)
1336 	);
1337 	return output;
1338 }
1339 
1340 VImage csvload(string filename, VOption options = VOption())
1341 {
1342 	VImage output;
1343 	baseOp("csvload",
1344 		options
1345 			.set("filename", filename)
1346 			.set("out", &output)
1347 	);
1348 	return output;
1349 }
1350 
1351 VImage matrixload(string filename, VOption options = VOption())
1352 {
1353 	VImage output;
1354 	baseOp("matrixload",
1355 		options
1356 			.set("filename", filename)
1357 			.set("out", &output)
1358 	);
1359 	return output;
1360 }
1361 
1362 VImage rawload(string filename, int width, int height, int bands, VOption options = VOption())
1363 {
1364 	VImage output;
1365 	baseOp("rawload",
1366 		options
1367 			.set("filename", filename)
1368 			.set("out", &output)
1369 			.set("width", width)
1370 			.set("height", height)
1371 			.set("bands", bands)
1372 	);
1373 	return output;
1374 }
1375 
1376 VImage vipsload(string filename, VOption options = VOption())
1377 {
1378 	VImage output;
1379 	baseOp("vipsload",
1380 		options
1381 			.set("filename", filename)
1382 			.set("out", &output)
1383 	);
1384 	return output;
1385 }
1386 
1387 VImage analyzeload(string filename, VOption options = VOption())
1388 {
1389 	VImage output;
1390 	baseOp("analyzeload",
1391 		options
1392 			.set("filename", filename)
1393 			.set("out", &output)
1394 	);
1395 	return output;
1396 }
1397 
1398 VImage ppmload(string filename, VOption options = VOption())
1399 {
1400 	VImage output;
1401 	baseOp("ppmload",
1402 		options
1403 			.set("filename", filename)
1404 			.set("out", &output)
1405 	);
1406 	return output;
1407 }
1408 
1409 VImage radload(string filename, VOption options = VOption())
1410 {
1411 	VImage output;
1412 	baseOp("radload",
1413 		options
1414 			.set("filename", filename)
1415 			.set("out", &output)
1416 	);
1417 	return output;
1418 }
1419 
1420 VImage pngload(string filename, VOption options = VOption())
1421 {
1422 	VImage output;
1423 	baseOp("pngload",
1424 		options
1425 			.set("filename", filename)
1426 			.set("out", &output)
1427 	);
1428 	return output;
1429 }
1430 
1431 VImage pngload_buffer(VipsBlob* buffer, VOption options = VOption())
1432 {
1433 	VImage output;
1434 	baseOp("pngload_buffer",
1435 		options
1436 			.set("buffer", buffer)
1437 			.set("out", &output)
1438 	);
1439 	return output;
1440 }
1441 
1442 VImage jpegload(string filename, VOption options = VOption())
1443 {
1444 	VImage output;
1445 	baseOp("jpegload",
1446 		options
1447 			.set("filename", filename)
1448 			.set("out", &output)
1449 	);
1450 	return output;
1451 }
1452 
1453 VImage jpegload_buffer(VipsBlob* buffer, VOption options = VOption())
1454 {
1455 	VImage output;
1456 	baseOp("jpegload_buffer",
1457 		options
1458 			.set("buffer", buffer)
1459 			.set("out", &output)
1460 	);
1461 	return output;
1462 }
1463 
1464 void csvsave(VImage input, string filename, VOption options = VOption())
1465 {
1466 	baseOp("csvsave",
1467 		options
1468 			.set("in", input)
1469 			.set("filename", filename)
1470 	);
1471 }
1472 
1473 void matrixsave(VImage input, string filename, VOption options = VOption())
1474 {
1475 	baseOp("matrixsave",
1476 		options
1477 			.set("in", input)
1478 			.set("filename", filename)
1479 	);
1480 }
1481 
1482 void matrixprint(VImage input, VOption options = VOption())
1483 {
1484 	baseOp("matrixprint",
1485 		options
1486 			.set("in", input)
1487 	);
1488 }
1489 
1490 void rawsave(VImage input, string filename, VOption options = VOption())
1491 {
1492 	baseOp("rawsave",
1493 		options
1494 			.set("in", input)
1495 			.set("filename", filename)
1496 	);
1497 }
1498 
1499 void rawsave_fd(VImage input, int fd, VOption options = VOption())
1500 {
1501 	baseOp("rawsave_fd",
1502 		options
1503 			.set("in", input)
1504 			.set("fd", fd)
1505 	);
1506 }
1507 
1508 void vipssave(VImage input, string filename, VOption options = VOption())
1509 {
1510 	baseOp("vipssave",
1511 		options
1512 			.set("in", input)
1513 			.set("filename", filename)
1514 	);
1515 }
1516 
1517 void ppmsave(VImage input, string filename, VOption options = VOption())
1518 {
1519 	baseOp("ppmsave",
1520 		options
1521 			.set("in", input)
1522 			.set("filename", filename)
1523 	);
1524 }
1525 
1526 void radsave(VImage input, string filename, VOption options = VOption())
1527 {
1528 	baseOp("radsave",
1529 		options
1530 			.set("in", input)
1531 			.set("filename", filename)
1532 	);
1533 }
1534 
1535 VipsBlob* radsave_buffer(VImage input, VOption options = VOption())
1536 {
1537 	VipsBlob* buffer;
1538 	baseOp("radsave_buffer",
1539 		options
1540 			.set("in", input)
1541 			.set("buffer", &buffer)
1542 	);
1543 	return buffer;
1544 }
1545 
1546 void pngsave(VImage input, string filename, VOption options = VOption())
1547 {
1548 	baseOp("pngsave",
1549 		options
1550 			.set("in", input)
1551 			.set("filename", filename)
1552 	);
1553 }
1554 
1555 VipsBlob* pngsave_buffer(VImage input, VOption options = VOption())
1556 {
1557 	VipsBlob* buffer;
1558 	baseOp("pngsave_buffer",
1559 		options
1560 			.set("in", input)
1561 			.set("buffer", &buffer)
1562 	);
1563 	return buffer;
1564 }
1565 
1566 void jpegsave(VImage input, string filename, VOption options = VOption())
1567 {
1568 	baseOp("jpegsave",
1569 		options
1570 			.set("in", input)
1571 			.set("filename", filename)
1572 	);
1573 }
1574 
1575 VipsBlob* jpegsave_buffer(VImage input, VOption options = VOption())
1576 {
1577 	VipsBlob* buffer;
1578 	baseOp("jpegsave_buffer",
1579 		options
1580 			.set("in", input)
1581 			.set("buffer", &buffer)
1582 	);
1583 	return buffer;
1584 }
1585 
1586 void jpegsave_mime(VImage input, VOption options = VOption())
1587 {
1588 	baseOp("jpegsave_mime",
1589 		options
1590 			.set("in", input)
1591 	);
1592 }
1593 
1594 VImage thumbnail(string filename, int width, VOption options = VOption())
1595 {
1596 	VImage output;
1597 	baseOp("thumbnail",
1598 		options
1599 			.set("filename", filename)
1600 			.set("out", &output)
1601 			.set("width", width)
1602 	);
1603 	return output;
1604 }
1605 
1606 VImage thumbnail_buffer(VipsBlob* buffer, int width, VOption options = VOption())
1607 {
1608 	VImage output;
1609 	baseOp("thumbnail_buffer",
1610 		options
1611 			.set("buffer", buffer)
1612 			.set("out", &output)
1613 			.set("width", width)
1614 	);
1615 	return output;
1616 }
1617 
1618 VImage thumbnail_image(VImage input, int width, VOption options = VOption())
1619 {
1620 	VImage output;
1621 	baseOp("thumbnail_image",
1622 		options
1623 			.set("in", input)
1624 			.set("out", &output)
1625 			.set("width", width)
1626 	);
1627 	return output;
1628 }
1629 
1630 VImage mapim(VImage input, VImage index, VOption options = VOption())
1631 {
1632 	VImage output;
1633 	baseOp("mapim",
1634 		options
1635 			.set("in", input)
1636 			.set("out", &output)
1637 			.set("index", index)
1638 	);
1639 	return output;
1640 }
1641 
1642 VImage shrink(VImage input, double hshrink, double vshrink, VOption options = VOption())
1643 {
1644 	VImage output;
1645 	baseOp("shrink",
1646 		options
1647 			.set("in", input)
1648 			.set("out", &output)
1649 			.set("hshrink", hshrink)
1650 			.set("vshrink", vshrink)
1651 	);
1652 	return output;
1653 }
1654 
1655 VImage shrinkh(VImage input, int hshrink, VOption options = VOption())
1656 {
1657 	VImage output;
1658 	baseOp("shrinkh",
1659 		options
1660 			.set("in", input)
1661 			.set("out", &output)
1662 			.set("hshrink", hshrink)
1663 	);
1664 	return output;
1665 }
1666 
1667 VImage shrinkv(VImage input, int vshrink, VOption options = VOption())
1668 {
1669 	VImage output;
1670 	baseOp("shrinkv",
1671 		options
1672 			.set("in", input)
1673 			.set("out", &output)
1674 			.set("vshrink", vshrink)
1675 	);
1676 	return output;
1677 }
1678 
1679 VImage reduceh(VImage input, double hshrink, VOption options = VOption())
1680 {
1681 	VImage output;
1682 	baseOp("reduceh",
1683 		options
1684 			.set("in", input)
1685 			.set("out", &output)
1686 			.set("hshrink", hshrink)
1687 	);
1688 	return output;
1689 }
1690 
1691 VImage reducev(VImage input, double vshrink, VOption options = VOption())
1692 {
1693 	VImage output;
1694 	baseOp("reducev",
1695 		options
1696 			.set("in", input)
1697 			.set("out", &output)
1698 			.set("vshrink", vshrink)
1699 	);
1700 	return output;
1701 }
1702 
1703 VImage reduce(VImage input, double hshrink, double vshrink, VOption options = VOption())
1704 {
1705 	VImage output;
1706 	baseOp("reduce",
1707 		options
1708 			.set("in", input)
1709 			.set("out", &output)
1710 			.set("hshrink", hshrink)
1711 			.set("vshrink", vshrink)
1712 	);
1713 	return output;
1714 }
1715 
1716 VImage quadratic(VImage input, VImage coeff, VOption options = VOption())
1717 {
1718 	VImage output;
1719 	baseOp("quadratic",
1720 		options
1721 			.set("in", input)
1722 			.set("out", &output)
1723 			.set("coeff", coeff)
1724 	);
1725 	return output;
1726 }
1727 
1728 VImage affine(VImage input, double[] matrix, VOption options = VOption())
1729 {
1730 	VImage output;
1731 	baseOp("affine",
1732 		options
1733 			.set("in", input)
1734 			.set("out", &output)
1735 			.set("matrix", matrix)
1736 	);
1737 	return output;
1738 }
1739 
1740 VImage similarity(VImage input, VOption options = VOption())
1741 {
1742 	VImage output;
1743 	baseOp("similarity",
1744 		options
1745 			.set("in", input)
1746 			.set("out", &output)
1747 	);
1748 	return output;
1749 }
1750 
1751 VImage rotate(VImage input, double angle, VOption options = VOption())
1752 {
1753 	VImage output;
1754 	baseOp("rotate",
1755 		options
1756 			.set("in", input)
1757 			.set("out", &output)
1758 			.set("angle", angle)
1759 	);
1760 	return output;
1761 }
1762 
1763 VImage resize(VImage input, double scale, VOption options = VOption())
1764 {
1765 	VImage output;
1766 	baseOp("resize",
1767 		options
1768 			.set("in", input)
1769 			.set("out", &output)
1770 			.set("scale", scale)
1771 	);
1772 	return output;
1773 }
1774 
1775 VImage colourspace(VImage input, VipsInterpretation space, VOption options = VOption())
1776 {
1777 	VImage output;
1778 	baseOp("colourspace",
1779 		options
1780 			.set("in", input)
1781 			.set("out", &output)
1782 			.set("space", space)
1783 	);
1784 	return output;
1785 }
1786 
1787 VImage Lab2XYZ(VImage input, VOption options = VOption())
1788 {
1789 	VImage output;
1790 	baseOp("Lab2XYZ",
1791 		options
1792 			.set("in", input)
1793 			.set("out", &output)
1794 	);
1795 	return output;
1796 }
1797 
1798 VImage XYZ2Lab(VImage input, VOption options = VOption())
1799 {
1800 	VImage output;
1801 	baseOp("XYZ2Lab",
1802 		options
1803 			.set("in", input)
1804 			.set("out", &output)
1805 	);
1806 	return output;
1807 }
1808 
1809 VImage Lab2LCh(VImage input, VOption options = VOption())
1810 {
1811 	VImage output;
1812 	baseOp("Lab2LCh",
1813 		options
1814 			.set("in", input)
1815 			.set("out", &output)
1816 	);
1817 	return output;
1818 }
1819 
1820 VImage LCh2Lab(VImage input, VOption options = VOption())
1821 {
1822 	VImage output;
1823 	baseOp("LCh2Lab",
1824 		options
1825 			.set("in", input)
1826 			.set("out", &output)
1827 	);
1828 	return output;
1829 }
1830 
1831 VImage LCh2CMC(VImage input, VOption options = VOption())
1832 {
1833 	VImage output;
1834 	baseOp("LCh2CMC",
1835 		options
1836 			.set("in", input)
1837 			.set("out", &output)
1838 	);
1839 	return output;
1840 }
1841 
1842 VImage CMC2LCh(VImage input, VOption options = VOption())
1843 {
1844 	VImage output;
1845 	baseOp("CMC2LCh",
1846 		options
1847 			.set("in", input)
1848 			.set("out", &output)
1849 	);
1850 	return output;
1851 }
1852 
1853 VImage XYZ2Yxy(VImage input, VOption options = VOption())
1854 {
1855 	VImage output;
1856 	baseOp("XYZ2Yxy",
1857 		options
1858 			.set("in", input)
1859 			.set("out", &output)
1860 	);
1861 	return output;
1862 }
1863 
1864 VImage Yxy2XYZ(VImage input, VOption options = VOption())
1865 {
1866 	VImage output;
1867 	baseOp("Yxy2XYZ",
1868 		options
1869 			.set("in", input)
1870 			.set("out", &output)
1871 	);
1872 	return output;
1873 }
1874 
1875 VImage scRGB2XYZ(VImage input, VOption options = VOption())
1876 {
1877 	VImage output;
1878 	baseOp("scRGB2XYZ",
1879 		options
1880 			.set("in", input)
1881 			.set("out", &output)
1882 	);
1883 	return output;
1884 }
1885 
1886 VImage XYZ2scRGB(VImage input, VOption options = VOption())
1887 {
1888 	VImage output;
1889 	baseOp("XYZ2scRGB",
1890 		options
1891 			.set("in", input)
1892 			.set("out", &output)
1893 	);
1894 	return output;
1895 }
1896 
1897 VImage LabQ2Lab(VImage input, VOption options = VOption())
1898 {
1899 	VImage output;
1900 	baseOp("LabQ2Lab",
1901 		options
1902 			.set("in", input)
1903 			.set("out", &output)
1904 	);
1905 	return output;
1906 }
1907 
1908 VImage Lab2LabQ(VImage input, VOption options = VOption())
1909 {
1910 	VImage output;
1911 	baseOp("Lab2LabQ",
1912 		options
1913 			.set("in", input)
1914 			.set("out", &output)
1915 	);
1916 	return output;
1917 }
1918 
1919 VImage LabQ2LabS(VImage input, VOption options = VOption())
1920 {
1921 	VImage output;
1922 	baseOp("LabQ2LabS",
1923 		options
1924 			.set("in", input)
1925 			.set("out", &output)
1926 	);
1927 	return output;
1928 }
1929 
1930 VImage LabS2LabQ(VImage input, VOption options = VOption())
1931 {
1932 	VImage output;
1933 	baseOp("LabS2LabQ",
1934 		options
1935 			.set("in", input)
1936 			.set("out", &output)
1937 	);
1938 	return output;
1939 }
1940 
1941 VImage LabS2Lab(VImage input, VOption options = VOption())
1942 {
1943 	VImage output;
1944 	baseOp("LabS2Lab",
1945 		options
1946 			.set("in", input)
1947 			.set("out", &output)
1948 	);
1949 	return output;
1950 }
1951 
1952 VImage Lab2LabS(VImage input, VOption options = VOption())
1953 {
1954 	VImage output;
1955 	baseOp("Lab2LabS",
1956 		options
1957 			.set("in", input)
1958 			.set("out", &output)
1959 	);
1960 	return output;
1961 }
1962 
1963 VImage rad2float(VImage input, VOption options = VOption())
1964 {
1965 	VImage output;
1966 	baseOp("rad2float",
1967 		options
1968 			.set("in", input)
1969 			.set("out", &output)
1970 	);
1971 	return output;
1972 }
1973 
1974 VImage float2rad(VImage input, VOption options = VOption())
1975 {
1976 	VImage output;
1977 	baseOp("float2rad",
1978 		options
1979 			.set("in", input)
1980 			.set("out", &output)
1981 	);
1982 	return output;
1983 }
1984 
1985 VImage LabQ2sRGB(VImage input, VOption options = VOption())
1986 {
1987 	VImage output;
1988 	baseOp("LabQ2sRGB",
1989 		options
1990 			.set("in", input)
1991 			.set("out", &output)
1992 	);
1993 	return output;
1994 }
1995 
1996 VImage sRGB2HSV(VImage input, VOption options = VOption())
1997 {
1998 	VImage output;
1999 	baseOp("sRGB2HSV",
2000 		options
2001 			.set("in", input)
2002 			.set("out", &output)
2003 	);
2004 	return output;
2005 }
2006 
2007 VImage HSV2sRGB(VImage input, VOption options = VOption())
2008 {
2009 	VImage output;
2010 	baseOp("HSV2sRGB",
2011 		options
2012 			.set("in", input)
2013 			.set("out", &output)
2014 	);
2015 	return output;
2016 }
2017 
2018 VImage dE76(VImage left, VImage right, VOption options = VOption())
2019 {
2020 	VImage output;
2021 	baseOp("dE76",
2022 		options
2023 			.set("left", left)
2024 			.set("right", right)
2025 			.set("out", &output)
2026 	);
2027 	return output;
2028 }
2029 
2030 VImage dE00(VImage left, VImage right, VOption options = VOption())
2031 {
2032 	VImage output;
2033 	baseOp("dE00",
2034 		options
2035 			.set("left", left)
2036 			.set("right", right)
2037 			.set("out", &output)
2038 	);
2039 	return output;
2040 }
2041 
2042 VImage dECMC(VImage left, VImage right, VOption options = VOption())
2043 {
2044 	VImage output;
2045 	baseOp("dECMC",
2046 		options
2047 			.set("left", left)
2048 			.set("right", right)
2049 			.set("out", &output)
2050 	);
2051 	return output;
2052 }
2053 
2054 VImage sRGB2scRGB(VImage input, VOption options = VOption())
2055 {
2056 	VImage output;
2057 	baseOp("sRGB2scRGB",
2058 		options
2059 			.set("in", input)
2060 			.set("out", &output)
2061 	);
2062 	return output;
2063 }
2064 
2065 VImage scRGB2BW(VImage input, VOption options = VOption())
2066 {
2067 	VImage output;
2068 	baseOp("scRGB2BW",
2069 		options
2070 			.set("in", input)
2071 			.set("out", &output)
2072 	);
2073 	return output;
2074 }
2075 
2076 VImage scRGB2sRGB(VImage input, VOption options = VOption())
2077 {
2078 	VImage output;
2079 	baseOp("scRGB2sRGB",
2080 		options
2081 			.set("in", input)
2082 			.set("out", &output)
2083 	);
2084 	return output;
2085 }
2086 
2087 VImage maplut(VImage input, VImage lut, VOption options = VOption())
2088 {
2089 	VImage output;
2090 	baseOp("maplut",
2091 		options
2092 			.set("in", input)
2093 			.set("out", &output)
2094 			.set("lut", lut)
2095 	);
2096 	return output;
2097 }
2098 
2099 int percent(VImage input, double percent, VOption options = VOption())
2100 {
2101 	int threshold;
2102 	baseOp("percent",
2103 		options
2104 			.set("in", input)
2105 			.set("percent", percent)
2106 			.set("threshold", &threshold)
2107 	);
2108 	return threshold;
2109 }
2110 
2111 VImage stdif(VImage input, int width, int height, VOption options = VOption())
2112 {
2113 	VImage output;
2114 	baseOp("stdif",
2115 		options
2116 			.set("in", input)
2117 			.set("out", &output)
2118 			.set("width", width)
2119 			.set("height", height)
2120 	);
2121 	return output;
2122 }
2123 
2124 VImage hist_cum(VImage input, VOption options = VOption())
2125 {
2126 	VImage output;
2127 	baseOp("hist_cum",
2128 		options
2129 			.set("in", input)
2130 			.set("out", &output)
2131 	);
2132 	return output;
2133 }
2134 
2135 VImage hist_match(VImage input, VImage vipsRef, VOption options = VOption())
2136 {
2137 	VImage output;
2138 	baseOp("hist_match",
2139 		options
2140 			.set("in", input)
2141 			.set("ref", vipsRef)
2142 			.set("out", &output)
2143 	);
2144 	return output;
2145 }
2146 
2147 VImage hist_norm(VImage input, VOption options = VOption())
2148 {
2149 	VImage output;
2150 	baseOp("hist_norm",
2151 		options
2152 			.set("in", input)
2153 			.set("out", &output)
2154 	);
2155 	return output;
2156 }
2157 
2158 VImage hist_equal(VImage input, VOption options = VOption())
2159 {
2160 	VImage output;
2161 	baseOp("hist_equal",
2162 		options
2163 			.set("in", input)
2164 			.set("out", &output)
2165 	);
2166 	return output;
2167 }
2168 
2169 VImage hist_plot(VImage input, VOption options = VOption())
2170 {
2171 	VImage output;
2172 	baseOp("hist_plot",
2173 		options
2174 			.set("in", input)
2175 			.set("out", &output)
2176 	);
2177 	return output;
2178 }
2179 
2180 VImage hist_local(VImage input, int width, int height, VOption options = VOption())
2181 {
2182 	VImage output;
2183 	baseOp("hist_local",
2184 		options
2185 			.set("in", input)
2186 			.set("out", &output)
2187 			.set("width", width)
2188 			.set("height", height)
2189 	);
2190 	return output;
2191 }
2192 
2193 bool hist_ismonotonic(VImage input, VOption options = VOption())
2194 {
2195 	bool monotonic;
2196 	baseOp("hist_ismonotonic",
2197 		options
2198 			.set("in", input)
2199 			.set("monotonic", &monotonic)
2200 	);
2201 	return monotonic;
2202 }
2203 
2204 double hist_entropy(VImage input, VOption options = VOption())
2205 {
2206 	double output;
2207 	baseOp("hist_entropy",
2208 		options
2209 			.set("in", input)
2210 			.set("out", &output)
2211 	);
2212 	return output;
2213 }
2214 
2215 VImage conv(VImage input, VImage mask, VOption options = VOption())
2216 {
2217 	VImage output;
2218 	baseOp("conv",
2219 		options
2220 			.set("in", input)
2221 			.set("out", &output)
2222 			.set("mask", mask)
2223 	);
2224 	return output;
2225 }
2226 
2227 VImage conva(VImage input, VImage mask, VOption options = VOption())
2228 {
2229 	VImage output;
2230 	baseOp("conva",
2231 		options
2232 			.set("in", input)
2233 			.set("out", &output)
2234 			.set("mask", mask)
2235 	);
2236 	return output;
2237 }
2238 
2239 VImage convf(VImage input, VImage mask, VOption options = VOption())
2240 {
2241 	VImage output;
2242 	baseOp("convf",
2243 		options
2244 			.set("in", input)
2245 			.set("out", &output)
2246 			.set("mask", mask)
2247 	);
2248 	return output;
2249 }
2250 
2251 VImage convi(VImage input, VImage mask, VOption options = VOption())
2252 {
2253 	VImage output;
2254 	baseOp("convi",
2255 		options
2256 			.set("in", input)
2257 			.set("out", &output)
2258 			.set("mask", mask)
2259 	);
2260 	return output;
2261 }
2262 
2263 VImage compass(VImage input, VImage mask, VOption options = VOption())
2264 {
2265 	VImage output;
2266 	baseOp("compass",
2267 		options
2268 			.set("in", input)
2269 			.set("out", &output)
2270 			.set("mask", mask)
2271 	);
2272 	return output;
2273 }
2274 
2275 VImage convsep(VImage input, VImage mask, VOption options = VOption())
2276 {
2277 	VImage output;
2278 	baseOp("convsep",
2279 		options
2280 			.set("in", input)
2281 			.set("out", &output)
2282 			.set("mask", mask)
2283 	);
2284 	return output;
2285 }
2286 
2287 VImage convasep(VImage input, VImage mask, VOption options = VOption())
2288 {
2289 	VImage output;
2290 	baseOp("convasep",
2291 		options
2292 			.set("in", input)
2293 			.set("out", &output)
2294 			.set("mask", mask)
2295 	);
2296 	return output;
2297 }
2298 
2299 VImage fastcor(VImage input, VImage vipsRef, VOption options = VOption())
2300 {
2301 	VImage output;
2302 	baseOp("fastcor",
2303 		options
2304 			.set("in", input)
2305 			.set("ref", vipsRef)
2306 			.set("out", &output)
2307 	);
2308 	return output;
2309 }
2310 
2311 VImage spcor(VImage input, VImage vipsRef, VOption options = VOption())
2312 {
2313 	VImage output;
2314 	baseOp("spcor",
2315 		options
2316 			.set("in", input)
2317 			.set("ref", vipsRef)
2318 			.set("out", &output)
2319 	);
2320 	return output;
2321 }
2322 
2323 VImage sharpen(VImage input, VOption options = VOption())
2324 {
2325 	VImage output;
2326 	baseOp("sharpen",
2327 		options
2328 			.set("in", input)
2329 			.set("out", &output)
2330 	);
2331 	return output;
2332 }
2333 
2334 VImage gaussblur(VImage input, double sigma, VOption options = VOption())
2335 {
2336 	VImage output;
2337 	baseOp("gaussblur",
2338 		options
2339 			.set("in", input)
2340 			.set("out", &output)
2341 			.set("sigma", sigma)
2342 	);
2343 	return output;
2344 }
2345 
2346 VImage canny(VImage input, VOption options = VOption())
2347 {
2348 	VImage output;
2349 	baseOp("canny",
2350 		options
2351 			.set("in", input)
2352 			.set("out", &output)
2353 	);
2354 	return output;
2355 }
2356 
2357 VImage sobel(VImage input, VOption options = VOption())
2358 {
2359 	VImage output;
2360 	baseOp("sobel",
2361 		options
2362 			.set("in", input)
2363 			.set("out", &output)
2364 	);
2365 	return output;
2366 }
2367 
2368 VImage fwfft(VImage input, VOption options = VOption())
2369 {
2370 	VImage output;
2371 	baseOp("fwfft",
2372 		options
2373 			.set("in", input)
2374 			.set("out", &output)
2375 	);
2376 	return output;
2377 }
2378 
2379 VImage invfft(VImage input, VOption options = VOption())
2380 {
2381 	VImage output;
2382 	baseOp("invfft",
2383 		options
2384 			.set("in", input)
2385 			.set("out", &output)
2386 	);
2387 	return output;
2388 }
2389 
2390 VImage freqmult(VImage input, VImage mask, VOption options = VOption())
2391 {
2392 	VImage output;
2393 	baseOp("freqmult",
2394 		options
2395 			.set("in", input)
2396 			.set("mask", mask)
2397 			.set("out", &output)
2398 	);
2399 	return output;
2400 }
2401 
2402 VImage spectrum(VImage input, VOption options = VOption())
2403 {
2404 	VImage output;
2405 	baseOp("spectrum",
2406 		options
2407 			.set("in", input)
2408 			.set("out", &output)
2409 	);
2410 	return output;
2411 }
2412 
2413 VImage phasecor(VImage input, VImage in2, VOption options = VOption())
2414 {
2415 	VImage output;
2416 	baseOp("phasecor",
2417 		options
2418 			.set("in", input)
2419 			.set("in2", in2)
2420 			.set("out", &output)
2421 	);
2422 	return output;
2423 }
2424 
2425 VImage morph(VImage input, VImage mask, VipsOperationMorphology morph, VOption options = VOption())
2426 {
2427 	VImage output;
2428 	baseOp("morph",
2429 		options
2430 			.set("in", input)
2431 			.set("out", &output)
2432 			.set("mask", mask)
2433 			.set("morph", morph)
2434 	);
2435 	return output;
2436 }
2437 
2438 VImage rank(VImage input, int width, int height, int index, VOption options = VOption())
2439 {
2440 	VImage output;
2441 	baseOp("rank",
2442 		options
2443 			.set("in", input)
2444 			.set("out", &output)
2445 			.set("width", width)
2446 			.set("height", height)
2447 			.set("index", index)
2448 	);
2449 	return output;
2450 }
2451 
2452 double countlines(VImage input, VipsDirection direction, VOption options = VOption())
2453 {
2454 	double nolines;
2455 	baseOp("countlines",
2456 		options
2457 			.set("in", input)
2458 			.set("nolines", &nolines)
2459 			.set("direction", direction)
2460 	);
2461 	return nolines;
2462 }
2463 
2464 VImage labelregions(VImage input, VOption options = VOption())
2465 {
2466 	VImage mask;
2467 	baseOp("labelregions",
2468 		options
2469 			.set("in", input)
2470 			.set("mask", &mask)
2471 	);
2472 	return mask;
2473 }
2474 
2475 VImage fill_nearest(VImage input, VOption options = VOption())
2476 {
2477 	VImage output;
2478 	baseOp("fill_nearest",
2479 		options
2480 			.set("in", input)
2481 			.set("out", &output)
2482 	);
2483 	return output;
2484 }
2485 
2486 void draw_rect(VImage image, double[] ink, int left, int top, int width, int height, VOption options = VOption())
2487 {
2488 	baseOp("draw_rect",
2489 		options
2490 			.set("image", image)
2491 			.set("ink", ink)
2492 			.set("left", left)
2493 			.set("top", top)
2494 			.set("width", width)
2495 			.set("height", height)
2496 	);
2497 }
2498 
2499 void draw_mask(VImage image, double[] ink, VImage mask, int x, int y, VOption options = VOption())
2500 {
2501 	baseOp("draw_mask",
2502 		options
2503 			.set("image", image)
2504 			.set("ink", ink)
2505 			.set("mask", mask)
2506 			.set("x", x)
2507 			.set("y", y)
2508 	);
2509 }
2510 
2511 void draw_line(VImage image, double[] ink, int x1, int y1, int x2, int y2, VOption options = VOption())
2512 {
2513 	baseOp("draw_line",
2514 		options
2515 			.set("image", image)
2516 			.set("ink", ink)
2517 			.set("x1", x1)
2518 			.set("y1", y1)
2519 			.set("x2", x2)
2520 			.set("y2", y2)
2521 	);
2522 }
2523 
2524 void draw_circle(VImage image, double[] ink, int cx, int cy, int radius, VOption options = VOption())
2525 {
2526 	baseOp("draw_circle",
2527 		options
2528 			.set("image", image)
2529 			.set("ink", ink)
2530 			.set("cx", cx)
2531 			.set("cy", cy)
2532 			.set("radius", radius)
2533 	);
2534 }
2535 
2536 void draw_flood(VImage image, double[] ink, int x, int y, VOption options = VOption())
2537 {
2538 	baseOp("draw_flood",
2539 		options
2540 			.set("image", image)
2541 			.set("ink", ink)
2542 			.set("x", x)
2543 			.set("y", y)
2544 	);
2545 }
2546 
2547 void draw_image(VImage image, VImage sub, int x, int y, VOption options = VOption())
2548 {
2549 	baseOp("draw_image",
2550 		options
2551 			.set("image", image)
2552 			.set("sub", sub)
2553 			.set("x", x)
2554 			.set("y", y)
2555 	);
2556 }
2557 
2558 void draw_smudge(VImage image, int left, int top, int width, int height, VOption options = VOption())
2559 {
2560 	baseOp("draw_smudge",
2561 		options
2562 			.set("image", image)
2563 			.set("left", left)
2564 			.set("top", top)
2565 			.set("width", width)
2566 			.set("height", height)
2567 	);
2568 }
2569 
2570 VImage merge(VImage vipsRef, VImage sec, VipsDirection direction, int dx, int dy, VOption options = VOption())
2571 {
2572 	VImage output;
2573 	baseOp("merge",
2574 		options
2575 			.set("ref", vipsRef)
2576 			.set("sec", sec)
2577 			.set("out", &output)
2578 			.set("direction", direction)
2579 			.set("dx", dx)
2580 			.set("dy", dy)
2581 	);
2582 	return output;
2583 }
2584 
2585 VImage mosaic(VImage vipsRef, VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption options = VOption())
2586 {
2587 	VImage output;
2588 	baseOp("mosaic",
2589 		options
2590 			.set("ref", vipsRef)
2591 			.set("sec", sec)
2592 			.set("out", &output)
2593 			.set("direction", direction)
2594 			.set("xref", xref)
2595 			.set("yref", yref)
2596 			.set("xsec", xsec)
2597 			.set("ysec", ysec)
2598 	);
2599 	return output;
2600 }
2601 
2602 VImage mosaic1(VImage vipsRef, VImage sec, VipsDirection direction, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption options = VOption())
2603 {
2604 	VImage output;
2605 	baseOp("mosaic1",
2606 		options
2607 			.set("ref", vipsRef)
2608 			.set("sec", sec)
2609 			.set("out", &output)
2610 			.set("direction", direction)
2611 			.set("xr1", xr1)
2612 			.set("yr1", yr1)
2613 			.set("xs1", xs1)
2614 			.set("ys1", ys1)
2615 			.set("xr2", xr2)
2616 			.set("yr2", yr2)
2617 			.set("xs2", xs2)
2618 			.set("ys2", ys2)
2619 	);
2620 	return output;
2621 }
2622 
2623 VImage match(VImage vipsRef, VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption options = VOption())
2624 {
2625 	VImage output;
2626 	baseOp("match",
2627 		options
2628 			.set("ref", vipsRef)
2629 			.set("sec", sec)
2630 			.set("out", &output)
2631 			.set("xr1", xr1)
2632 			.set("yr1", yr1)
2633 			.set("xs1", xs1)
2634 			.set("ys1", ys1)
2635 			.set("xr2", xr2)
2636 			.set("yr2", yr2)
2637 			.set("xs2", xs2)
2638 			.set("ys2", ys2)
2639 	);
2640 	return output;
2641 }
2642 
2643 VImage globalbalance(VImage input, VOption options = VOption())
2644 {
2645 	VImage output;
2646 	baseOp("globalbalance",
2647 		options
2648 			.set("in", input)
2649 			.set("out", &output)
2650 	);
2651 	return output;
2652 }
2653