@img/sharp-libvips-dev 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. package/README.md +47 -0
  2. package/cplusplus/VConnection.cpp +151 -0
  3. package/cplusplus/VError.cpp +49 -0
  4. package/cplusplus/VImage.cpp +1548 -0
  5. package/cplusplus/VInterpolate.cpp +62 -0
  6. package/cplusplus/VRegion.cpp +27 -0
  7. package/cplusplus/index.js +1 -0
  8. package/cplusplus/vips-operators.cpp +3760 -0
  9. package/include/aom/aom.h +127 -0
  10. package/include/aom/aom_codec.h +573 -0
  11. package/include/aom/aom_decoder.h +257 -0
  12. package/include/aom/aom_encoder.h +1137 -0
  13. package/include/aom/aom_external_partition.h +452 -0
  14. package/include/aom/aom_frame_buffer.h +84 -0
  15. package/include/aom/aom_image.h +448 -0
  16. package/include/aom/aom_integer.h +68 -0
  17. package/include/aom/aomcx.h +2112 -0
  18. package/include/aom/aomdx.h +604 -0
  19. package/include/archive.h +1212 -0
  20. package/include/archive_entry.h +723 -0
  21. package/include/cairo/cairo-deprecated.h +123 -0
  22. package/include/cairo/cairo-features.h +29 -0
  23. package/include/cairo/cairo-ft.h +118 -0
  24. package/include/cairo/cairo-gobject.h +192 -0
  25. package/include/cairo/cairo-svg.h +130 -0
  26. package/include/cairo/cairo-version.h +8 -0
  27. package/include/cairo/cairo.h +3281 -0
  28. package/include/cgif.h +80 -0
  29. package/include/expat.h +1064 -0
  30. package/include/expat_config.h +140 -0
  31. package/include/expat_external.h +165 -0
  32. package/include/ffi.h +531 -0
  33. package/include/ffitarget.h +164 -0
  34. package/include/fontconfig/fcfreetype.h +59 -0
  35. package/include/fontconfig/fcprivate.h +134 -0
  36. package/include/fontconfig/fontconfig.h +1158 -0
  37. package/include/freetype2/freetype/config/ftconfig.h +51 -0
  38. package/include/freetype2/freetype/config/ftheader.h +836 -0
  39. package/include/freetype2/freetype/config/ftmodule.h +21 -0
  40. package/include/freetype2/freetype/config/ftoption.h +1014 -0
  41. package/include/freetype2/freetype/config/ftstdlib.h +185 -0
  42. package/include/freetype2/freetype/config/integer-types.h +250 -0
  43. package/include/freetype2/freetype/config/mac-support.h +49 -0
  44. package/include/freetype2/freetype/config/public-macros.h +138 -0
  45. package/include/freetype2/freetype/freetype.h +5337 -0
  46. package/include/freetype2/freetype/ftadvanc.h +188 -0
  47. package/include/freetype2/freetype/ftbbox.h +101 -0
  48. package/include/freetype2/freetype/ftbdf.h +212 -0
  49. package/include/freetype2/freetype/ftbitmap.h +329 -0
  50. package/include/freetype2/freetype/ftbzip2.h +102 -0
  51. package/include/freetype2/freetype/ftcache.h +1087 -0
  52. package/include/freetype2/freetype/ftchapters.h +168 -0
  53. package/include/freetype2/freetype/ftcid.h +167 -0
  54. package/include/freetype2/freetype/ftcolor.h +1667 -0
  55. package/include/freetype2/freetype/ftdriver.h +1246 -0
  56. package/include/freetype2/freetype/fterrdef.h +283 -0
  57. package/include/freetype2/freetype/fterrors.h +296 -0
  58. package/include/freetype2/freetype/ftfntfmt.h +93 -0
  59. package/include/freetype2/freetype/ftgasp.h +143 -0
  60. package/include/freetype2/freetype/ftglyph.h +750 -0
  61. package/include/freetype2/freetype/ftgxval.h +354 -0
  62. package/include/freetype2/freetype/ftgzip.h +151 -0
  63. package/include/freetype2/freetype/ftimage.h +1284 -0
  64. package/include/freetype2/freetype/ftincrem.h +348 -0
  65. package/include/freetype2/freetype/ftlcdfil.h +323 -0
  66. package/include/freetype2/freetype/ftlist.h +296 -0
  67. package/include/freetype2/freetype/ftlzw.h +100 -0
  68. package/include/freetype2/freetype/ftmac.h +289 -0
  69. package/include/freetype2/freetype/ftmm.h +805 -0
  70. package/include/freetype2/freetype/ftmodapi.h +807 -0
  71. package/include/freetype2/freetype/ftmoderr.h +204 -0
  72. package/include/freetype2/freetype/ftotval.h +206 -0
  73. package/include/freetype2/freetype/ftoutln.h +588 -0
  74. package/include/freetype2/freetype/ftparams.h +218 -0
  75. package/include/freetype2/freetype/ftpfr.h +179 -0
  76. package/include/freetype2/freetype/ftrender.h +244 -0
  77. package/include/freetype2/freetype/ftsizes.h +159 -0
  78. package/include/freetype2/freetype/ftsnames.h +272 -0
  79. package/include/freetype2/freetype/ftstroke.h +773 -0
  80. package/include/freetype2/freetype/ftsynth.h +104 -0
  81. package/include/freetype2/freetype/ftsystem.h +350 -0
  82. package/include/freetype2/freetype/fttrigon.h +350 -0
  83. package/include/freetype2/freetype/fttypes.h +617 -0
  84. package/include/freetype2/freetype/ftwinfnt.h +276 -0
  85. package/include/freetype2/freetype/otsvg.h +336 -0
  86. package/include/freetype2/freetype/t1tables.h +793 -0
  87. package/include/freetype2/freetype/ttnameid.h +1235 -0
  88. package/include/freetype2/freetype/tttables.h +855 -0
  89. package/include/freetype2/freetype/tttags.h +124 -0
  90. package/include/freetype2/ft2build.h +42 -0
  91. package/include/fribidi/fribidi-arabic.h +81 -0
  92. package/include/fribidi/fribidi-begindecls.h +3 -0
  93. package/include/fribidi/fribidi-bidi-types-list.h +96 -0
  94. package/include/fribidi/fribidi-bidi-types.h +405 -0
  95. package/include/fribidi/fribidi-bidi.h +142 -0
  96. package/include/fribidi/fribidi-brackets.h +89 -0
  97. package/include/fribidi/fribidi-char-sets-list.h +54 -0
  98. package/include/fribidi/fribidi-char-sets.h +106 -0
  99. package/include/fribidi/fribidi-common.h +152 -0
  100. package/include/fribidi/fribidi-config.h +23 -0
  101. package/include/fribidi/fribidi-deprecated.h +175 -0
  102. package/include/fribidi/fribidi-enddecls.h +3 -0
  103. package/include/fribidi/fribidi-flags.h +72 -0
  104. package/include/fribidi/fribidi-joining-types-list.h +44 -0
  105. package/include/fribidi/fribidi-joining-types.h +249 -0
  106. package/include/fribidi/fribidi-joining.h +74 -0
  107. package/include/fribidi/fribidi-mirroring.h +86 -0
  108. package/include/fribidi/fribidi-shape.h +71 -0
  109. package/include/fribidi/fribidi-types.h +79 -0
  110. package/include/fribidi/fribidi-unicode-version.h +10 -0
  111. package/include/fribidi/fribidi-unicode.h +105 -0
  112. package/include/fribidi/fribidi.h +129 -0
  113. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h +221 -0
  114. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-autocleanups.h +37 -0
  115. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h +525 -0
  116. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h +40 -0
  117. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-features.h +115 -0
  118. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-io.h +481 -0
  119. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-loader.h +113 -0
  120. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-macros.h +718 -0
  121. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-marshal.h +33 -0
  122. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h +70 -0
  123. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-transform.h +168 -0
  124. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h +46 -0
  125. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixdata.h +165 -0
  126. package/include/gio-unix-2.0/gio/gdesktopappinfo.h +200 -0
  127. package/include/gio-unix-2.0/gio/gfiledescriptorbased.h +67 -0
  128. package/include/gio-unix-2.0/gio/gunixfdmessage.h +86 -0
  129. package/include/gio-unix-2.0/gio/gunixinputstream.h +85 -0
  130. package/include/gio-unix-2.0/gio/gunixmounts.h +172 -0
  131. package/include/gio-unix-2.0/gio/gunixoutputstream.h +84 -0
  132. package/include/glib-2.0/gio/gaction.h +100 -0
  133. package/include/glib-2.0/gio/gactiongroup.h +163 -0
  134. package/include/glib-2.0/gio/gactiongroupexporter.h +47 -0
  135. package/include/glib-2.0/gio/gactionmap.h +101 -0
  136. package/include/glib-2.0/gio/gappinfo.h +369 -0
  137. package/include/glib-2.0/gio/gapplication.h +257 -0
  138. package/include/glib-2.0/gio/gapplicationcommandline.h +124 -0
  139. package/include/glib-2.0/gio/gasyncinitable.h +132 -0
  140. package/include/glib-2.0/gio/gasyncresult.h +87 -0
  141. package/include/glib-2.0/gio/gbufferedinputstream.h +135 -0
  142. package/include/glib-2.0/gio/gbufferedoutputstream.h +88 -0
  143. package/include/glib-2.0/gio/gbytesicon.h +54 -0
  144. package/include/glib-2.0/gio/gcancellable.h +120 -0
  145. package/include/glib-2.0/gio/gcharsetconverter.h +65 -0
  146. package/include/glib-2.0/gio/gcontenttype.h +84 -0
  147. package/include/glib-2.0/gio/gconverter.h +98 -0
  148. package/include/glib-2.0/gio/gconverterinputstream.h +82 -0
  149. package/include/glib-2.0/gio/gconverteroutputstream.h +82 -0
  150. package/include/glib-2.0/gio/gcredentials.h +87 -0
  151. package/include/glib-2.0/gio/gdatagrambased.h +146 -0
  152. package/include/glib-2.0/gio/gdatainputstream.h +182 -0
  153. package/include/glib-2.0/gio/gdataoutputstream.h +127 -0
  154. package/include/glib-2.0/gio/gdbusactiongroup.h +56 -0
  155. package/include/glib-2.0/gio/gdbusaddress.h +67 -0
  156. package/include/glib-2.0/gio/gdbusauthobserver.h +53 -0
  157. package/include/glib-2.0/gio/gdbusconnection.h +691 -0
  158. package/include/glib-2.0/gio/gdbuserror.h +111 -0
  159. package/include/glib-2.0/gio/gdbusinterface.h +83 -0
  160. package/include/glib-2.0/gio/gdbusinterfaceskeleton.h +129 -0
  161. package/include/glib-2.0/gio/gdbusintrospection.h +327 -0
  162. package/include/glib-2.0/gio/gdbusmenumodel.h +47 -0
  163. package/include/glib-2.0/gio/gdbusmessage.h +204 -0
  164. package/include/glib-2.0/gio/gdbusmethodinvocation.h +136 -0
  165. package/include/glib-2.0/gio/gdbusnameowning.h +117 -0
  166. package/include/glib-2.0/gio/gdbusnamewatching.h +104 -0
  167. package/include/glib-2.0/gio/gdbusobject.h +80 -0
  168. package/include/glib-2.0/gio/gdbusobjectmanager.h +96 -0
  169. package/include/glib-2.0/gio/gdbusobjectmanagerclient.h +148 -0
  170. package/include/glib-2.0/gio/gdbusobjectmanagerserver.h +95 -0
  171. package/include/glib-2.0/gio/gdbusobjectproxy.h +81 -0
  172. package/include/glib-2.0/gio/gdbusobjectskeleton.h +98 -0
  173. package/include/glib-2.0/gio/gdbusproxy.h +220 -0
  174. package/include/glib-2.0/gio/gdbusserver.h +62 -0
  175. package/include/glib-2.0/gio/gdbusutils.h +65 -0
  176. package/include/glib-2.0/gio/gdebugcontroller.h +81 -0
  177. package/include/glib-2.0/gio/gdebugcontrollerdbus.h +71 -0
  178. package/include/glib-2.0/gio/gdrive.h +274 -0
  179. package/include/glib-2.0/gio/gdtlsclientconnection.h +77 -0
  180. package/include/glib-2.0/gio/gdtlsconnection.h +230 -0
  181. package/include/glib-2.0/gio/gdtlsserverconnection.h +71 -0
  182. package/include/glib-2.0/gio/gemblem.h +63 -0
  183. package/include/glib-2.0/gio/gemblemedicon.h +83 -0
  184. package/include/glib-2.0/gio/gfile.h +1359 -0
  185. package/include/glib-2.0/gio/gfileattribute.h +86 -0
  186. package/include/glib-2.0/gio/gfileenumerator.h +154 -0
  187. package/include/glib-2.0/gio/gfileicon.h +59 -0
  188. package/include/glib-2.0/gio/gfileinfo.h +1546 -0
  189. package/include/glib-2.0/gio/gfileinputstream.h +116 -0
  190. package/include/glib-2.0/gio/gfileiostream.h +123 -0
  191. package/include/glib-2.0/gio/gfilemonitor.h +100 -0
  192. package/include/glib-2.0/gio/gfilenamecompleter.h +81 -0
  193. package/include/glib-2.0/gio/gfileoutputstream.h +124 -0
  194. package/include/glib-2.0/gio/gfilterinputstream.h +80 -0
  195. package/include/glib-2.0/gio/gfilteroutputstream.h +80 -0
  196. package/include/glib-2.0/gio/gicon.h +133 -0
  197. package/include/glib-2.0/gio/ginetaddress.h +125 -0
  198. package/include/glib-2.0/gio/ginetaddressmask.h +86 -0
  199. package/include/glib-2.0/gio/ginetsocketaddress.h +80 -0
  200. package/include/glib-2.0/gio/ginitable.h +107 -0
  201. package/include/glib-2.0/gio/ginputstream.h +218 -0
  202. package/include/glib-2.0/gio/gio-autocleanups.h +155 -0
  203. package/include/glib-2.0/gio/gio-visibility.h +952 -0
  204. package/include/glib-2.0/gio/gio.h +186 -0
  205. package/include/glib-2.0/gio/gioenums.h +2149 -0
  206. package/include/glib-2.0/gio/gioenumtypes.h +207 -0
  207. package/include/glib-2.0/gio/gioerror.h +58 -0
  208. package/include/glib-2.0/gio/giomodule.h +199 -0
  209. package/include/glib-2.0/gio/gioscheduler.h +56 -0
  210. package/include/glib-2.0/gio/giostream.h +137 -0
  211. package/include/glib-2.0/gio/giotypes.h +660 -0
  212. package/include/glib-2.0/gio/glistmodel.h +74 -0
  213. package/include/glib-2.0/gio/gliststore.h +97 -0
  214. package/include/glib-2.0/gio/gloadableicon.h +101 -0
  215. package/include/glib-2.0/gio/gmemoryinputstream.h +92 -0
  216. package/include/glib-2.0/gio/gmemorymonitor.h +64 -0
  217. package/include/glib-2.0/gio/gmemoryoutputstream.h +109 -0
  218. package/include/glib-2.0/gio/gmenu.h +184 -0
  219. package/include/glib-2.0/gio/gmenuexporter.h +55 -0
  220. package/include/glib-2.0/gio/gmenumodel.h +307 -0
  221. package/include/glib-2.0/gio/gmount.h +278 -0
  222. package/include/glib-2.0/gio/gmountoperation.h +179 -0
  223. package/include/glib-2.0/gio/gnativesocketaddress.h +67 -0
  224. package/include/glib-2.0/gio/gnativevolumemonitor.h +63 -0
  225. package/include/glib-2.0/gio/gnetworkaddress.h +82 -0
  226. package/include/glib-2.0/gio/gnetworking.h +81 -0
  227. package/include/glib-2.0/gio/gnetworkmonitor.h +101 -0
  228. package/include/glib-2.0/gio/gnetworkservice.h +77 -0
  229. package/include/glib-2.0/gio/gnotification.h +103 -0
  230. package/include/glib-2.0/gio/goutputstream.h +334 -0
  231. package/include/glib-2.0/gio/gpermission.h +129 -0
  232. package/include/glib-2.0/gio/gpollableinputstream.h +106 -0
  233. package/include/glib-2.0/gio/gpollableoutputstream.h +127 -0
  234. package/include/glib-2.0/gio/gpollableutils.h +66 -0
  235. package/include/glib-2.0/gio/gpowerprofilemonitor.h +65 -0
  236. package/include/glib-2.0/gio/gpropertyaction.h +49 -0
  237. package/include/glib-2.0/gio/gproxy.h +130 -0
  238. package/include/glib-2.0/gio/gproxyaddress.h +88 -0
  239. package/include/glib-2.0/gio/gproxyaddressenumerator.h +83 -0
  240. package/include/glib-2.0/gio/gproxyresolver.h +97 -0
  241. package/include/glib-2.0/gio/gremoteactiongroup.h +77 -0
  242. package/include/glib-2.0/gio/gresolver.h +299 -0
  243. package/include/glib-2.0/gio/gresource.h +132 -0
  244. package/include/glib-2.0/gio/gseekable.h +105 -0
  245. package/include/glib-2.0/gio/gsettings.h +347 -0
  246. package/include/glib-2.0/gio/gsettingsbackend.h +176 -0
  247. package/include/glib-2.0/gio/gsettingsschema.h +115 -0
  248. package/include/glib-2.0/gio/gsimpleaction.h +65 -0
  249. package/include/glib-2.0/gio/gsimpleactiongroup.h +99 -0
  250. package/include/glib-2.0/gio/gsimpleasyncresult.h +164 -0
  251. package/include/glib-2.0/gio/gsimpleiostream.h +47 -0
  252. package/include/glib-2.0/gio/gsimplepermission.h +47 -0
  253. package/include/glib-2.0/gio/gsimpleproxyresolver.h +91 -0
  254. package/include/glib-2.0/gio/gsocket.h +330 -0
  255. package/include/glib-2.0/gio/gsocketaddress.h +84 -0
  256. package/include/glib-2.0/gio/gsocketaddressenumerator.h +103 -0
  257. package/include/glib-2.0/gio/gsocketclient.h +199 -0
  258. package/include/glib-2.0/gio/gsocketconnectable.h +83 -0
  259. package/include/glib-2.0/gio/gsocketconnection.h +117 -0
  260. package/include/glib-2.0/gio/gsocketcontrolmessage.h +113 -0
  261. package/include/glib-2.0/gio/gsocketlistener.h +157 -0
  262. package/include/glib-2.0/gio/gsocketservice.h +95 -0
  263. package/include/glib-2.0/gio/gsrvtarget.h +60 -0
  264. package/include/glib-2.0/gio/gsubprocess.h +169 -0
  265. package/include/glib-2.0/gio/gsubprocesslauncher.h +121 -0
  266. package/include/glib-2.0/gio/gtask.h +207 -0
  267. package/include/glib-2.0/gio/gtcpconnection.h +71 -0
  268. package/include/glib-2.0/gio/gtcpwrapperconnection.h +71 -0
  269. package/include/glib-2.0/gio/gtestdbus.h +74 -0
  270. package/include/glib-2.0/gio/gthemedicon.h +70 -0
  271. package/include/glib-2.0/gio/gthreadedsocketservice.h +83 -0
  272. package/include/glib-2.0/gio/gtlsbackend.h +115 -0
  273. package/include/glib-2.0/gio/gtlscertificate.h +125 -0
  274. package/include/glib-2.0/gio/gtlsclientconnection.h +88 -0
  275. package/include/glib-2.0/gio/gtlsconnection.h +214 -0
  276. package/include/glib-2.0/gio/gtlsdatabase.h +249 -0
  277. package/include/glib-2.0/gio/gtlsfiledatabase.h +60 -0
  278. package/include/glib-2.0/gio/gtlsinteraction.h +150 -0
  279. package/include/glib-2.0/gio/gtlspassword.h +121 -0
  280. package/include/glib-2.0/gio/gtlsserverconnection.h +71 -0
  281. package/include/glib-2.0/gio/gunixconnection.h +102 -0
  282. package/include/glib-2.0/gio/gunixcredentialsmessage.h +89 -0
  283. package/include/glib-2.0/gio/gunixfdlist.h +97 -0
  284. package/include/glib-2.0/gio/gunixsocketaddress.h +83 -0
  285. package/include/glib-2.0/gio/gvfs.h +170 -0
  286. package/include/glib-2.0/gio/gvolume.h +255 -0
  287. package/include/glib-2.0/gio/gvolumemonitor.h +156 -0
  288. package/include/glib-2.0/gio/gzlibcompressor.h +64 -0
  289. package/include/glib-2.0/gio/gzlibdecompressor.h +60 -0
  290. package/include/glib-2.0/glib/deprecated/gallocator.h +88 -0
  291. package/include/glib-2.0/glib/deprecated/gcache.h +77 -0
  292. package/include/glib-2.0/glib/deprecated/gcompletion.h +85 -0
  293. package/include/glib-2.0/glib/deprecated/gmain.h +137 -0
  294. package/include/glib-2.0/glib/deprecated/grel.h +107 -0
  295. package/include/glib-2.0/glib/deprecated/gthread.h +295 -0
  296. package/include/glib-2.0/glib/galloca.h +147 -0
  297. package/include/glib-2.0/glib/garray.h +323 -0
  298. package/include/glib-2.0/glib/gasyncqueue.h +126 -0
  299. package/include/glib-2.0/glib/gatomic.h +587 -0
  300. package/include/glib-2.0/glib/gbacktrace.h +74 -0
  301. package/include/glib-2.0/glib/gbase64.h +63 -0
  302. package/include/glib-2.0/glib/gbitlock.h +78 -0
  303. package/include/glib-2.0/glib/gbookmarkfile.h +300 -0
  304. package/include/glib-2.0/glib/gbytes.h +99 -0
  305. package/include/glib-2.0/glib/gcharset.h +49 -0
  306. package/include/glib-2.0/glib/gchecksum.h +106 -0
  307. package/include/glib-2.0/glib/gconvert.h +179 -0
  308. package/include/glib-2.0/glib/gdataset.h +156 -0
  309. package/include/glib-2.0/glib/gdate.h +309 -0
  310. package/include/glib-2.0/glib/gdatetime.h +275 -0
  311. package/include/glib-2.0/glib/gdir.h +54 -0
  312. package/include/glib-2.0/glib/genviron.h +65 -0
  313. package/include/glib-2.0/glib/gerror.h +263 -0
  314. package/include/glib-2.0/glib/gfileutils.h +223 -0
  315. package/include/glib-2.0/glib/ggettext.h +65 -0
  316. package/include/glib-2.0/glib/ghash.h +206 -0
  317. package/include/glib-2.0/glib/ghmac.h +85 -0
  318. package/include/glib-2.0/glib/ghook.h +204 -0
  319. package/include/glib-2.0/glib/ghostutils.h +45 -0
  320. package/include/glib-2.0/glib/gi18n-lib.h +38 -0
  321. package/include/glib-2.0/glib/gi18n.h +34 -0
  322. package/include/glib-2.0/glib/giochannel.h +407 -0
  323. package/include/glib-2.0/glib/gkeyfile.h +332 -0
  324. package/include/glib-2.0/glib/glib-autocleanups.h +105 -0
  325. package/include/glib-2.0/glib/glib-typeof.h +47 -0
  326. package/include/glib-2.0/glib/glib-visibility.h +952 -0
  327. package/include/glib-2.0/glib/glist.h +179 -0
  328. package/include/glib-2.0/glib/gmacros.h +1425 -0
  329. package/include/glib-2.0/glib/gmain.h +862 -0
  330. package/include/glib-2.0/glib/gmappedfile.h +60 -0
  331. package/include/glib-2.0/glib/gmarkup.h +265 -0
  332. package/include/glib-2.0/glib/gmem.h +425 -0
  333. package/include/glib-2.0/glib/gmessages.h +690 -0
  334. package/include/glib-2.0/glib/gnode.h +309 -0
  335. package/include/glib-2.0/glib/goption.h +409 -0
  336. package/include/glib-2.0/glib/gpathbuf.h +90 -0
  337. package/include/glib-2.0/glib/gpattern.h +65 -0
  338. package/include/glib-2.0/glib/gpoll.h +122 -0
  339. package/include/glib-2.0/glib/gprimes.h +52 -0
  340. package/include/glib-2.0/glib/gprintf.h +59 -0
  341. package/include/glib-2.0/glib/gqsort.h +47 -0
  342. package/include/glib-2.0/glib/gquark.h +70 -0
  343. package/include/glib-2.0/glib/gqueue.h +205 -0
  344. package/include/glib-2.0/glib/grand.h +101 -0
  345. package/include/glib-2.0/glib/grcbox.h +91 -0
  346. package/include/glib-2.0/glib/grefcount.h +179 -0
  347. package/include/glib-2.0/glib/grefstring.h +59 -0
  348. package/include/glib-2.0/glib/gscanner.h +301 -0
  349. package/include/glib-2.0/glib/gsequence.h +175 -0
  350. package/include/glib-2.0/glib/gshell.h +59 -0
  351. package/include/glib-2.0/glib/gslice.h +117 -0
  352. package/include/glib-2.0/glib/gslist.h +166 -0
  353. package/include/glib-2.0/glib/gspawn.h +323 -0
  354. package/include/glib-2.0/glib/gstdio.h +231 -0
  355. package/include/glib-2.0/glib/gstrfuncs.h +504 -0
  356. package/include/glib-2.0/glib/gstring.h +296 -0
  357. package/include/glib-2.0/glib/gstringchunk.h +59 -0
  358. package/include/glib-2.0/glib/gstrvbuilder.h +69 -0
  359. package/include/glib-2.0/glib/gtestutils.h +763 -0
  360. package/include/glib-2.0/glib/gthread.h +603 -0
  361. package/include/glib-2.0/glib/gthreadpool.h +105 -0
  362. package/include/glib-2.0/glib/gtimer.h +80 -0
  363. package/include/glib-2.0/glib/gtimezone.h +98 -0
  364. package/include/glib-2.0/glib/gtrashstack.h +60 -0
  365. package/include/glib-2.0/glib/gtree.h +181 -0
  366. package/include/glib-2.0/glib/gtypes.h +591 -0
  367. package/include/glib-2.0/glib/gunicode.h +974 -0
  368. package/include/glib-2.0/glib/guri.h +420 -0
  369. package/include/glib-2.0/glib/gutils.h +479 -0
  370. package/include/glib-2.0/glib/guuid.h +42 -0
  371. package/include/glib-2.0/glib/gvariant.h +541 -0
  372. package/include/glib-2.0/glib/gvarianttype.h +384 -0
  373. package/include/glib-2.0/glib/gversion.h +57 -0
  374. package/include/glib-2.0/glib/gversionmacros.h +490 -0
  375. package/include/glib-2.0/glib/gwin32.h +142 -0
  376. package/include/glib-2.0/glib-object.h +46 -0
  377. package/include/glib-2.0/glib-unix.h +125 -0
  378. package/include/glib-2.0/glib.h +121 -0
  379. package/include/glib-2.0/gmodule/gmodule-visibility.h +952 -0
  380. package/include/glib-2.0/gmodule.h +147 -0
  381. package/include/glib-2.0/gobject/gbinding.h +156 -0
  382. package/include/glib-2.0/gobject/gbindinggroup.h +85 -0
  383. package/include/glib-2.0/gobject/gboxed.h +124 -0
  384. package/include/glib-2.0/gobject/gclosure.h +323 -0
  385. package/include/glib-2.0/gobject/genums.h +381 -0
  386. package/include/glib-2.0/gobject/glib-enumtypes.h +25 -0
  387. package/include/glib-2.0/gobject/glib-types.h +400 -0
  388. package/include/glib-2.0/gobject/gmarshal.h +434 -0
  389. package/include/glib-2.0/gobject/gobject-autocleanups.h +33 -0
  390. package/include/glib-2.0/gobject/gobject-visibility.h +952 -0
  391. package/include/glib-2.0/gobject/gobject.h +953 -0
  392. package/include/glib-2.0/gobject/gobjectnotifyqueue.c +199 -0
  393. package/include/glib-2.0/gobject/gparam.h +476 -0
  394. package/include/glib-2.0/gobject/gparamspecs.h +1151 -0
  395. package/include/glib-2.0/gobject/gsignal.h +647 -0
  396. package/include/glib-2.0/gobject/gsignalgroup.h +98 -0
  397. package/include/glib-2.0/gobject/gsourceclosure.h +40 -0
  398. package/include/glib-2.0/gobject/gtype.h +2703 -0
  399. package/include/glib-2.0/gobject/gtypemodule.h +302 -0
  400. package/include/glib-2.0/gobject/gtypeplugin.h +136 -0
  401. package/include/glib-2.0/gobject/gvalue.h +212 -0
  402. package/include/glib-2.0/gobject/gvaluearray.h +106 -0
  403. package/include/glib-2.0/gobject/gvaluecollector.h +290 -0
  404. package/include/glib-2.0/gobject/gvaluetypes.h +318 -0
  405. package/include/harfbuzz/hb-aat-layout.h +795 -0
  406. package/include/harfbuzz/hb-aat.h +38 -0
  407. package/include/harfbuzz/hb-blob.h +160 -0
  408. package/include/harfbuzz/hb-buffer.h +799 -0
  409. package/include/harfbuzz/hb-common.h +938 -0
  410. package/include/harfbuzz/hb-cplusplus.hh +223 -0
  411. package/include/harfbuzz/hb-deprecated.h +309 -0
  412. package/include/harfbuzz/hb-draw.h +340 -0
  413. package/include/harfbuzz/hb-face.h +187 -0
  414. package/include/harfbuzz/hb-features.h +119 -0
  415. package/include/harfbuzz/hb-font.h +1153 -0
  416. package/include/harfbuzz/hb-ft.h +145 -0
  417. package/include/harfbuzz/hb-glib.h +56 -0
  418. package/include/harfbuzz/hb-map.h +143 -0
  419. package/include/harfbuzz/hb-ot-color.h +155 -0
  420. package/include/harfbuzz/hb-ot-deprecated.h +147 -0
  421. package/include/harfbuzz/hb-ot-font.h +45 -0
  422. package/include/harfbuzz/hb-ot-layout.h +549 -0
  423. package/include/harfbuzz/hb-ot-math.h +333 -0
  424. package/include/harfbuzz/hb-ot-meta.h +72 -0
  425. package/include/harfbuzz/hb-ot-metrics.h +129 -0
  426. package/include/harfbuzz/hb-ot-name.h +164 -0
  427. package/include/harfbuzz/hb-ot-shape.h +53 -0
  428. package/include/harfbuzz/hb-ot-var.h +191 -0
  429. package/include/harfbuzz/hb-ot.h +49 -0
  430. package/include/harfbuzz/hb-paint.h +1029 -0
  431. package/include/harfbuzz/hb-set.h +203 -0
  432. package/include/harfbuzz/hb-shape-plan.h +122 -0
  433. package/include/harfbuzz/hb-shape.h +74 -0
  434. package/include/harfbuzz/hb-style.h +81 -0
  435. package/include/harfbuzz/hb-subset-repacker.h +81 -0
  436. package/include/harfbuzz/hb-subset.h +241 -0
  437. package/include/harfbuzz/hb-unicode.h +643 -0
  438. package/include/harfbuzz/hb-version.h +95 -0
  439. package/include/harfbuzz/hb.h +51 -0
  440. package/include/index.js +1 -0
  441. package/include/jconfig.h +37 -0
  442. package/include/jerror.h +335 -0
  443. package/include/jmorecfg.h +382 -0
  444. package/include/jpeglib.h +1210 -0
  445. package/include/lcms2.h +1958 -0
  446. package/include/lcms2_plugin.h +700 -0
  447. package/include/libexif/_stdint.h +2 -0
  448. package/include/libexif/exif-byte-order.h +48 -0
  449. package/include/libexif/exif-content.h +181 -0
  450. package/include/libexif/exif-data-type.h +46 -0
  451. package/include/libexif/exif-data.h +267 -0
  452. package/include/libexif/exif-entry.h +186 -0
  453. package/include/libexif/exif-format.h +65 -0
  454. package/include/libexif/exif-ifd.h +51 -0
  455. package/include/libexif/exif-loader.h +128 -0
  456. package/include/libexif/exif-log.h +116 -0
  457. package/include/libexif/exif-mem.h +91 -0
  458. package/include/libexif/exif-mnote-data.h +122 -0
  459. package/include/libexif/exif-tag.h +307 -0
  460. package/include/libexif/exif-utils.h +194 -0
  461. package/include/libheif/heif.h +2092 -0
  462. package/include/libheif/heif_cxx.h +1359 -0
  463. package/include/libheif/heif_plugin.h +306 -0
  464. package/include/libheif/heif_version.h +38 -0
  465. package/include/libimagequant.h +111 -0
  466. package/include/libpng16/png.h +3247 -0
  467. package/include/libpng16/pngconf.h +623 -0
  468. package/include/libpng16/pnglibconf.h +219 -0
  469. package/include/librsvg-2.0/librsvg/rsvg-cairo.h +395 -0
  470. package/include/librsvg-2.0/librsvg/rsvg-features.h +184 -0
  471. package/include/librsvg-2.0/librsvg/rsvg-version.h +13 -0
  472. package/include/librsvg-2.0/librsvg/rsvg.h +1456 -0
  473. package/include/libxml2/libxml/HTMLparser.h +320 -0
  474. package/include/libxml2/libxml/HTMLtree.h +147 -0
  475. package/include/libxml2/libxml/SAX.h +204 -0
  476. package/include/libxml2/libxml/SAX2.h +173 -0
  477. package/include/libxml2/libxml/c14n.h +128 -0
  478. package/include/libxml2/libxml/catalog.h +182 -0
  479. package/include/libxml2/libxml/chvalid.h +230 -0
  480. package/include/libxml2/libxml/debugXML.h +217 -0
  481. package/include/libxml2/libxml/dict.h +81 -0
  482. package/include/libxml2/libxml/encoding.h +233 -0
  483. package/include/libxml2/libxml/entities.h +151 -0
  484. package/include/libxml2/libxml/globals.h +529 -0
  485. package/include/libxml2/libxml/hash.h +236 -0
  486. package/include/libxml2/libxml/list.h +137 -0
  487. package/include/libxml2/libxml/nanoftp.h +186 -0
  488. package/include/libxml2/libxml/nanohttp.h +81 -0
  489. package/include/libxml2/libxml/parser.h +1265 -0
  490. package/include/libxml2/libxml/parserInternals.h +662 -0
  491. package/include/libxml2/libxml/pattern.h +100 -0
  492. package/include/libxml2/libxml/relaxng.h +218 -0
  493. package/include/libxml2/libxml/schemasInternals.h +958 -0
  494. package/include/libxml2/libxml/schematron.h +142 -0
  495. package/include/libxml2/libxml/threads.h +94 -0
  496. package/include/libxml2/libxml/tree.h +1314 -0
  497. package/include/libxml2/libxml/uri.h +94 -0
  498. package/include/libxml2/libxml/valid.h +448 -0
  499. package/include/libxml2/libxml/xinclude.h +129 -0
  500. package/include/libxml2/libxml/xlink.h +189 -0
  501. package/include/libxml2/libxml/xmlIO.h +369 -0
  502. package/include/libxml2/libxml/xmlautomata.h +146 -0
  503. package/include/libxml2/libxml/xmlerror.h +919 -0
  504. package/include/libxml2/libxml/xmlexports.h +50 -0
  505. package/include/libxml2/libxml/xmlmemory.h +228 -0
  506. package/include/libxml2/libxml/xmlmodule.h +57 -0
  507. package/include/libxml2/libxml/xmlreader.h +428 -0
  508. package/include/libxml2/libxml/xmlregexp.h +222 -0
  509. package/include/libxml2/libxml/xmlsave.h +88 -0
  510. package/include/libxml2/libxml/xmlschemas.h +246 -0
  511. package/include/libxml2/libxml/xmlschemastypes.h +152 -0
  512. package/include/libxml2/libxml/xmlstring.h +140 -0
  513. package/include/libxml2/libxml/xmlunicode.h +202 -0
  514. package/include/libxml2/libxml/xmlversion.h +526 -0
  515. package/include/libxml2/libxml/xmlwriter.h +488 -0
  516. package/include/libxml2/libxml/xpath.h +575 -0
  517. package/include/libxml2/libxml/xpathInternals.h +632 -0
  518. package/include/libxml2/libxml/xpointer.h +137 -0
  519. package/include/orc-0.4/orc/orc-stdint.h +1 -0
  520. package/include/orc-0.4/orc/orc.h +16 -0
  521. package/include/orc-0.4/orc/orcarm.h +879 -0
  522. package/include/orc-0.4/orc/orcbytecode.h +35 -0
  523. package/include/orc-0.4/orc/orcbytecodes.h +255 -0
  524. package/include/orc-0.4/orc/orccode.h +53 -0
  525. package/include/orc-0.4/orc/orccompiler.h +176 -0
  526. package/include/orc-0.4/orc/orcconstant.h +39 -0
  527. package/include/orc-0.4/orc/orccpu.h +21 -0
  528. package/include/orc-0.4/orc/orccpuinsn.h +40 -0
  529. package/include/orc-0.4/orc/orcdebug.h +158 -0
  530. package/include/orc-0.4/orc/orcemulateopcodes.h +203 -0
  531. package/include/orc-0.4/orc/orcexecutor.h +135 -0
  532. package/include/orc-0.4/orc/orcfunctions.h +93 -0
  533. package/include/orc-0.4/orc/orcinstruction.h +39 -0
  534. package/include/orc-0.4/orc/orcinternal.h +46 -0
  535. package/include/orc-0.4/orc/orclimits.h +94 -0
  536. package/include/orc-0.4/orc/orcmips.h +229 -0
  537. package/include/orc-0.4/orc/orcmmx.h +79 -0
  538. package/include/orc-0.4/orc/orcneon.h +43 -0
  539. package/include/orc-0.4/orc/orconce.h +166 -0
  540. package/include/orc-0.4/orc/orcopcode.h +63 -0
  541. package/include/orc-0.4/orc/orcparse.h +27 -0
  542. package/include/orc-0.4/orc/orcpowerpc.h +209 -0
  543. package/include/orc-0.4/orc/orcprogram.h +192 -0
  544. package/include/orc-0.4/orc/orcrule.h +52 -0
  545. package/include/orc-0.4/orc/orcsse.h +55 -0
  546. package/include/orc-0.4/orc/orctarget.h +115 -0
  547. package/include/orc-0.4/orc/orcutils.h +238 -0
  548. package/include/orc-0.4/orc/orcvariable.h +81 -0
  549. package/include/orc-0.4/orc/orcx86.h +199 -0
  550. package/include/orc-0.4/orc/orcx86insn.h +672 -0
  551. package/include/pango-1.0/pango/pango-attributes.h +748 -0
  552. package/include/pango-1.0/pango/pango-bidi-type.h +117 -0
  553. package/include/pango-1.0/pango/pango-break.h +144 -0
  554. package/include/pango-1.0/pango/pango-color.h +75 -0
  555. package/include/pango-1.0/pango/pango-context.h +116 -0
  556. package/include/pango-1.0/pango/pango-coverage.h +108 -0
  557. package/include/pango-1.0/pango/pango-direction.h +72 -0
  558. package/include/pango-1.0/pango/pango-engine.h +457 -0
  559. package/include/pango-1.0/pango/pango-enum-types.h +120 -0
  560. package/include/pango-1.0/pango/pango-features.h +10 -0
  561. package/include/pango-1.0/pango/pango-font.h +699 -0
  562. package/include/pango-1.0/pango/pango-fontmap.h +132 -0
  563. package/include/pango-1.0/pango/pango-fontset-simple.h +64 -0
  564. package/include/pango-1.0/pango/pango-fontset.h +134 -0
  565. package/include/pango-1.0/pango/pango-glyph-item.h +175 -0
  566. package/include/pango-1.0/pango/pango-glyph.h +270 -0
  567. package/include/pango-1.0/pango/pango-gravity.h +137 -0
  568. package/include/pango-1.0/pango/pango-item.h +165 -0
  569. package/include/pango-1.0/pango/pango-language.h +70 -0
  570. package/include/pango-1.0/pango/pango-layout.h +554 -0
  571. package/include/pango-1.0/pango/pango-markup.h +52 -0
  572. package/include/pango-1.0/pango/pango-matrix.h +130 -0
  573. package/include/pango-1.0/pango/pango-modules.h +84 -0
  574. package/include/pango-1.0/pango/pango-ot.h +427 -0
  575. package/include/pango-1.0/pango/pango-renderer.h +290 -0
  576. package/include/pango-1.0/pango/pango-script.h +335 -0
  577. package/include/pango-1.0/pango/pango-tabs.h +117 -0
  578. package/include/pango-1.0/pango/pango-types.h +244 -0
  579. package/include/pango-1.0/pango/pango-utils.h +187 -0
  580. package/include/pango-1.0/pango/pango-version-macros.h +756 -0
  581. package/include/pango-1.0/pango/pango.h +54 -0
  582. package/include/pango-1.0/pango/pangocairo.h +220 -0
  583. package/include/pango-1.0/pango/pangofc-decoder.h +122 -0
  584. package/include/pango-1.0/pango/pangofc-font.h +120 -0
  585. package/include/pango-1.0/pango/pangofc-fontmap.h +244 -0
  586. package/include/pango-1.0/pango/pangoft2.h +158 -0
  587. package/include/pixman-1/pixman-version.h +54 -0
  588. package/include/pixman-1/pixman.h +1419 -0
  589. package/include/png.h +3247 -0
  590. package/include/pngconf.h +623 -0
  591. package/include/pnglibconf.h +219 -0
  592. package/include/spng.h +537 -0
  593. package/include/tiff.h +899 -0
  594. package/include/tiffconf.h +145 -0
  595. package/include/tiffio.h +653 -0
  596. package/include/tiffvers.h +36 -0
  597. package/include/vips/VConnection8.h +150 -0
  598. package/include/vips/VError8.h +76 -0
  599. package/include/vips/VImage8.h +6065 -0
  600. package/include/vips/VInterpolate8.h +77 -0
  601. package/include/vips/VRegion8.h +155 -0
  602. package/include/vips/arithmetic.h +571 -0
  603. package/include/vips/basic.h +113 -0
  604. package/include/vips/buf.h +118 -0
  605. package/include/vips/colour.h +306 -0
  606. package/include/vips/connection.h +570 -0
  607. package/include/vips/conversion.h +357 -0
  608. package/include/vips/convolution.h +95 -0
  609. package/include/vips/create.h +161 -0
  610. package/include/vips/dbuf.h +103 -0
  611. package/include/vips/debug.h +74 -0
  612. package/include/vips/draw.h +113 -0
  613. package/include/vips/enumtypes.h +181 -0
  614. package/include/vips/error.h +142 -0
  615. package/include/vips/foreign.h +993 -0
  616. package/include/vips/format.h +135 -0
  617. package/include/vips/freqfilt.h +64 -0
  618. package/include/vips/gate.h +82 -0
  619. package/include/vips/generate.h +92 -0
  620. package/include/vips/header.h +312 -0
  621. package/include/vips/histogram.h +85 -0
  622. package/include/vips/image.h +605 -0
  623. package/include/vips/interpolate.h +141 -0
  624. package/include/vips/memory.h +96 -0
  625. package/include/vips/morphology.h +73 -0
  626. package/include/vips/mosaicing.h +80 -0
  627. package/include/vips/object.h +706 -0
  628. package/include/vips/operation.h +182 -0
  629. package/include/vips/private.h +227 -0
  630. package/include/vips/rect.h +80 -0
  631. package/include/vips/region.h +238 -0
  632. package/include/vips/resample.h +123 -0
  633. package/include/vips/sbuf.h +144 -0
  634. package/include/vips/semaphore.h +77 -0
  635. package/include/vips/thread.h +72 -0
  636. package/include/vips/threadpool.h +160 -0
  637. package/include/vips/transform.h +89 -0
  638. package/include/vips/type.h +305 -0
  639. package/include/vips/util.h +406 -0
  640. package/include/vips/vector.h +183 -0
  641. package/include/vips/version.h +26 -0
  642. package/include/vips/vips.h +194 -0
  643. package/include/vips/vips8 +60 -0
  644. package/include/webp/decode.h +504 -0
  645. package/include/webp/demux.h +363 -0
  646. package/include/webp/encode.h +552 -0
  647. package/include/webp/mux.h +530 -0
  648. package/include/webp/mux_types.h +98 -0
  649. package/include/webp/sharpyuv/sharpyuv.h +103 -0
  650. package/include/webp/sharpyuv/sharpyuv_csp.h +60 -0
  651. package/include/webp/types.h +72 -0
  652. package/include/zconf.h +203 -0
  653. package/include/zlib.h +1855 -0
  654. package/include/zlib_name_mangling.h +8 -0
  655. package/package.json +30 -0
  656. package/versions.json +31 -0
@@ -0,0 +1,1548 @@
1
+ /* Object part of VImage class
2
+ *
3
+ * 30/12/14
4
+ * - allow set enum value from string
5
+ * 10/6/16
6
+ * - missing implementation of VImage::write()
7
+ * 11/6/16
8
+ * - added arithmetic assignment overloads, += etc.
9
+ */
10
+
11
+ /*
12
+
13
+ Copyright (C) 1991-2001 The National Gallery
14
+
15
+ This program is free software; you can redistribute it and/or modify
16
+ it under the terms of the GNU Lesser General Public License as published by
17
+ the Free Software Foundation; either version 2 of the License, or
18
+ (at your option) any later version.
19
+
20
+ This program is distributed in the hope that it will be useful,
21
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
22
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
+ GNU Lesser General Public License for more details.
24
+
25
+ You should have received a copy of the GNU Lesser General Public License
26
+ along with this program; if not, write to the Free Software
27
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
28
+ 02110-1301 USA
29
+
30
+ */
31
+
32
+ /*
33
+
34
+ These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
35
+
36
+ */
37
+
38
+ #ifdef HAVE_CONFIG_H
39
+ #include <config.h>
40
+ #endif /*HAVE_CONFIG_H*/
41
+
42
+ #include <vips/vips8>
43
+
44
+ #include <vips/debug.h>
45
+
46
+ /*
47
+ #define VIPS_DEBUG
48
+ #define VIPS_DEBUG_VERBOSE
49
+ */
50
+
51
+ VIPS_NAMESPACE_START
52
+
53
+ /**
54
+ * \namespace vips
55
+ *
56
+ * General docs for the vips namespace.
57
+ */
58
+
59
+ std::vector<double>
60
+ to_vectorv( int n, ... )
61
+ {
62
+ std::vector<double> vector( n );
63
+ va_list ap;
64
+
65
+ va_start( ap, n );
66
+ for( int i = 0; i < n; i++ )
67
+ vector[i] = va_arg( ap, double );
68
+ va_end( ap );
69
+
70
+ return( vector );
71
+ }
72
+
73
+ std::vector<double>
74
+ to_vector( double value )
75
+ {
76
+ return( to_vectorv( 1, value ) );
77
+ }
78
+
79
+ std::vector<double>
80
+ to_vector( int n, double array[] )
81
+ {
82
+ std::vector<double> vector( n );
83
+
84
+ for( int i = 0; i < n; i++ )
85
+ vector[i] = array[i];
86
+
87
+ return( vector );
88
+ }
89
+
90
+ std::vector<double>
91
+ negate( std::vector<double> vector )
92
+ {
93
+ std::vector<double> new_vector( vector.size() );
94
+
95
+ for( std::vector<double>::size_type i = 0; i < vector.size(); i++ )
96
+ new_vector[i] = vector[i] * -1;
97
+
98
+ return( new_vector );
99
+ }
100
+
101
+ std::vector<double>
102
+ invert( std::vector<double> vector )
103
+ {
104
+ std::vector<double> new_vector( vector.size() );
105
+
106
+ for( std::vector<double>::size_type i = 0; i < vector.size(); i++ )
107
+ new_vector[i] = 1.0 / vector[i];
108
+
109
+ return( new_vector );
110
+ }
111
+
112
+ VOption::~VOption()
113
+ {
114
+ std::list<Pair *>::iterator i;
115
+
116
+ for( i = options.begin(); i != options.end(); ++i )
117
+ delete *i;
118
+ }
119
+
120
+ // input bool
121
+ VOption *
122
+ VOption::set( const char *name, bool value )
123
+ {
124
+ Pair *pair = new Pair( name );
125
+
126
+ pair->input = true;
127
+ g_value_init( &pair->value, G_TYPE_BOOLEAN );
128
+ g_value_set_boolean( &pair->value, value );
129
+ options.push_back( pair );
130
+
131
+ return( this );
132
+ }
133
+
134
+ // input int ... this path is used for enums as well
135
+ VOption *
136
+ VOption::set( const char *name, int value )
137
+ {
138
+ Pair *pair = new Pair( name );
139
+
140
+ pair->input = true;
141
+ g_value_init( &pair->value, G_TYPE_INT );
142
+ g_value_set_int( &pair->value, value );
143
+ options.push_back( pair );
144
+
145
+ return( this );
146
+ }
147
+
148
+ // input guint64
149
+ VOption *
150
+ VOption::set( const char *name, guint64 value )
151
+ {
152
+ Pair *pair = new Pair( name );
153
+
154
+ pair->input = true;
155
+ g_value_init( &pair->value, G_TYPE_UINT64 );
156
+ g_value_set_uint64( &pair->value, value );
157
+ options.push_back( pair );
158
+
159
+ return( this );
160
+ }
161
+
162
+ // input double
163
+ VOption *
164
+ VOption::set( const char *name, double value )
165
+ {
166
+ Pair *pair = new Pair( name );
167
+
168
+ pair->input = true;
169
+ g_value_init( &pair->value, G_TYPE_DOUBLE );
170
+ g_value_set_double( &pair->value, value );
171
+ options.push_back( pair );
172
+
173
+ return( this );
174
+ }
175
+
176
+ VOption *
177
+ VOption::set( const char *name, const char *value )
178
+ {
179
+ Pair *pair = new Pair( name );
180
+
181
+ pair->input = true;
182
+ g_value_init( &pair->value, G_TYPE_STRING );
183
+ g_value_set_string( &pair->value, value );
184
+ options.push_back( pair );
185
+
186
+ return( this );
187
+ }
188
+
189
+ // input vips object (image, source, target, etc. etc.)
190
+ VOption *
191
+ VOption::set( const char *name, const VObject value )
192
+ {
193
+ Pair *pair = new Pair( name );
194
+ VipsObject *object = value.get_object();
195
+ GType type = G_OBJECT_TYPE( object );
196
+
197
+ pair->input = true;
198
+ g_value_init( &pair->value, type );
199
+ g_value_set_object( &pair->value, object );
200
+ options.push_back( pair );
201
+
202
+ return( this );
203
+ }
204
+
205
+ // input int array
206
+ VOption *
207
+ VOption::set( const char *name, std::vector<int> value )
208
+ {
209
+ Pair *pair = new Pair( name );
210
+
211
+ int *array;
212
+
213
+ pair->input = true;
214
+
215
+ g_value_init( &pair->value, VIPS_TYPE_ARRAY_INT );
216
+ vips_value_set_array_int( &pair->value, NULL,
217
+ static_cast< int >( value.size() ) );
218
+ array = vips_value_get_array_int( &pair->value, NULL );
219
+
220
+ for( std::vector<double>::size_type i = 0; i < value.size(); i++ )
221
+ array[i] = value[i];
222
+
223
+ options.push_back( pair );
224
+
225
+ return( this );
226
+ }
227
+
228
+ // input double array
229
+ VOption *
230
+ VOption::set( const char *name, std::vector<double> value )
231
+ {
232
+ Pair *pair = new Pair( name );
233
+
234
+ double *array;
235
+
236
+ pair->input = true;
237
+
238
+ g_value_init( &pair->value, VIPS_TYPE_ARRAY_DOUBLE );
239
+ vips_value_set_array_double( &pair->value, NULL,
240
+ static_cast< int >( value.size() ) );
241
+ array = vips_value_get_array_double( &pair->value, NULL );
242
+
243
+ for( std::vector<double>::size_type i = 0; i < value.size(); i++ )
244
+ array[i] = value[i];
245
+
246
+ options.push_back( pair );
247
+
248
+ return( this );
249
+ }
250
+
251
+ // input image array
252
+ VOption *
253
+ VOption::set( const char *name, std::vector<VImage> value )
254
+ {
255
+ Pair *pair = new Pair( name );
256
+
257
+ VipsImage **array;
258
+
259
+ pair->input = true;
260
+
261
+ g_value_init( &pair->value, VIPS_TYPE_ARRAY_IMAGE );
262
+ vips_value_set_array_image( &pair->value,
263
+ static_cast< int >( value.size() ) );
264
+ array = vips_value_get_array_image( &pair->value, NULL );
265
+
266
+ for( std::vector<double>::size_type i = 0; i < value.size(); i++ ) {
267
+ VipsImage *vips_image = value[i].get_image();
268
+
269
+ array[i] = vips_image;
270
+ g_object_ref( vips_image );
271
+ }
272
+
273
+ options.push_back( pair );
274
+
275
+ return( this );
276
+ }
277
+
278
+ // input blob
279
+ VOption *
280
+ VOption::set( const char *name, VipsBlob *value )
281
+ {
282
+ Pair *pair = new Pair( name );
283
+
284
+ pair->input = true;
285
+ g_value_init( &pair->value, VIPS_TYPE_BLOB );
286
+ g_value_set_boxed( &pair->value, value );
287
+ options.push_back( pair );
288
+
289
+ return( this );
290
+ }
291
+
292
+ // output bool
293
+ VOption *
294
+ VOption::set( const char *name, bool *value )
295
+ {
296
+ Pair *pair = new Pair( name );
297
+
298
+ pair->input = false;
299
+ pair->vbool = value;
300
+ g_value_init( &pair->value, G_TYPE_BOOLEAN );
301
+
302
+ options.push_back( pair );
303
+
304
+ return( this );
305
+ }
306
+
307
+ // output int
308
+ VOption *
309
+ VOption::set( const char *name, int *value )
310
+ {
311
+ Pair *pair = new Pair( name );
312
+
313
+ pair->input = false;
314
+ pair->vint = value;
315
+ g_value_init( &pair->value, G_TYPE_INT );
316
+
317
+ options.push_back( pair );
318
+
319
+ return( this );
320
+ }
321
+
322
+ // output double
323
+ VOption *
324
+ VOption::set( const char *name, double *value )
325
+ {
326
+ Pair *pair = new Pair( name );
327
+
328
+ pair->input = false;
329
+ pair->vdouble = value;
330
+ g_value_init( &pair->value, G_TYPE_DOUBLE );
331
+
332
+ options.push_back( pair );
333
+
334
+ return( this );
335
+ }
336
+
337
+ // output image
338
+ VOption *
339
+ VOption::set( const char *name, VImage *value )
340
+ {
341
+ Pair *pair = new Pair( name );
342
+
343
+ pair->input = false;
344
+ pair->vimage = value;
345
+ g_value_init( &pair->value, VIPS_TYPE_IMAGE );
346
+
347
+ options.push_back( pair );
348
+
349
+ return( this );
350
+ }
351
+
352
+ // output doublearray
353
+ VOption *
354
+ VOption::set( const char *name, std::vector<double> *value )
355
+ {
356
+ Pair *pair = new Pair( name );
357
+
358
+ pair->input = false;
359
+ pair->vvector = value;
360
+ g_value_init( &pair->value, VIPS_TYPE_ARRAY_DOUBLE );
361
+
362
+ options.push_back( pair );
363
+
364
+ return( this );
365
+ }
366
+
367
+ // output blob
368
+ VOption *
369
+ VOption::set( const char *name, VipsBlob **value )
370
+ {
371
+ Pair *pair = new Pair( name );
372
+
373
+ pair->input = false;
374
+ pair->vblob = value;
375
+ g_value_init( &pair->value, VIPS_TYPE_BLOB );
376
+
377
+ options.push_back( pair );
378
+
379
+ return( this );
380
+ }
381
+
382
+ // just g_object_set_property(), except we allow set enum from string
383
+ static void
384
+ set_property( VipsObject *object, const char *name, const GValue *value )
385
+ {
386
+ VipsObjectClass *object_class = VIPS_OBJECT_GET_CLASS( object );
387
+ GType type = G_VALUE_TYPE( value );
388
+
389
+ GParamSpec *pspec;
390
+ VipsArgumentClass *argument_class;
391
+ VipsArgumentInstance *argument_instance;
392
+
393
+ if( vips_object_get_argument( object, name,
394
+ &pspec, &argument_class, &argument_instance ) ) {
395
+ g_warning( "%s", vips_error_buffer() );
396
+ vips_error_clear();
397
+ return;
398
+ }
399
+
400
+ if( G_IS_PARAM_SPEC_ENUM( pspec ) &&
401
+ type == G_TYPE_STRING ) {
402
+ GType pspec_type = G_PARAM_SPEC_VALUE_TYPE( pspec );
403
+
404
+ int enum_value;
405
+ GValue value2 = { 0 };
406
+
407
+ if( (enum_value = vips_enum_from_nick( object_class->nickname,
408
+ pspec_type, g_value_get_string( value ) )) < 0 ) {
409
+ g_warning( "%s", vips_error_buffer() );
410
+ vips_error_clear();
411
+ return;
412
+ }
413
+
414
+ g_value_init( &value2, pspec_type );
415
+ g_value_set_enum( &value2, enum_value );
416
+ g_object_set_property( G_OBJECT( object ), name, &value2 );
417
+ g_value_unset( &value2 );
418
+ }
419
+ else
420
+ g_object_set_property( G_OBJECT( object ), name, value );
421
+ }
422
+
423
+ // walk the options and set props on the operation
424
+ void
425
+ VOption::set_operation( VipsOperation *operation )
426
+ {
427
+ std::list<Pair *>::iterator i;
428
+
429
+ for( i = options.begin(); i != options.end(); ++i )
430
+ if( (*i)->input ) {
431
+ #ifdef VIPS_DEBUG_VERBOSE
432
+ printf( "set_operation: " );
433
+ vips_object_print_name( VIPS_OBJECT( operation ) );
434
+ char *str_value =
435
+ g_strdup_value_contents( &(*i)->value );
436
+ printf( ".%s = %s\n", (*i)->name, str_value );
437
+ g_free( str_value );
438
+ #endif /*VIPS_DEBUG_VERBOSE*/
439
+
440
+ set_property( VIPS_OBJECT( operation ),
441
+ (*i)->name, &(*i)->value );
442
+ }
443
+ }
444
+
445
+ // walk the options and fetch any requested outputs
446
+ void
447
+ VOption::get_operation( VipsOperation *operation )
448
+ {
449
+ std::list<Pair *>::iterator i;
450
+
451
+ for( i = options.begin(); i != options.end(); ++i )
452
+ if( ! (*i)->input ) {
453
+ const char *name = (*i)->name;
454
+
455
+ g_object_get_property( G_OBJECT( operation ),
456
+ name, &(*i)->value );
457
+
458
+ #ifdef VIPS_DEBUG_VERBOSE
459
+ printf( "get_operation: " );
460
+ vips_object_print_name( VIPS_OBJECT( operation ) );
461
+ char *str_value = g_strdup_value_contents(
462
+ &(*i)->value );
463
+ printf( ".%s = %s\n", name, str_value );
464
+ g_free( str_value );
465
+ #endif /*VIPS_DEBUG_VERBOSE*/
466
+
467
+ GValue *value = &(*i)->value;
468
+ GType type = G_VALUE_TYPE( value );
469
+
470
+ if( type == VIPS_TYPE_IMAGE ) {
471
+ // rebox object
472
+ VipsImage *image = VIPS_IMAGE(
473
+ g_value_get_object( value ) );
474
+ *((*i)->vimage) = VImage( image );
475
+ }
476
+ else if( type == G_TYPE_INT )
477
+ *((*i)->vint) = g_value_get_int( value );
478
+ else if( type == G_TYPE_BOOLEAN )
479
+ *((*i)->vbool) = g_value_get_boolean( value );
480
+ else if( type == G_TYPE_DOUBLE )
481
+ *((*i)->vdouble) = g_value_get_double( value );
482
+ else if( type == VIPS_TYPE_ARRAY_DOUBLE ) {
483
+ int length;
484
+ double *array =
485
+ vips_value_get_array_double( value,
486
+ &length );
487
+
488
+ ((*i)->vvector)->resize( length );
489
+ for( int j = 0; j < length; j++ )
490
+ (*((*i)->vvector))[j] = array[j];
491
+ }
492
+ else if( type == VIPS_TYPE_BLOB ) {
493
+ // our caller gets a reference
494
+ *((*i)->vblob) =
495
+ (VipsBlob *) g_value_dup_boxed( value );
496
+ }
497
+ }
498
+ }
499
+
500
+ void
501
+ VImage::call_option_string( const char *operation_name,
502
+ const char *option_string, VOption *options )
503
+ {
504
+ VipsOperation *operation;
505
+
506
+ VIPS_DEBUG_MSG( "call_option_string: starting for %s ...\n",
507
+ operation_name );
508
+
509
+ if( !(operation = vips_operation_new( operation_name )) ) {
510
+ delete options;
511
+ throw( VError() );
512
+ }
513
+
514
+ /* Set str options before vargs options, so the user can't
515
+ * override things we set deliberately.
516
+ */
517
+ if( option_string &&
518
+ vips_object_set_from_string( VIPS_OBJECT( operation ),
519
+ option_string ) ) {
520
+ vips_object_unref_outputs( VIPS_OBJECT( operation ) );
521
+ g_object_unref( operation );
522
+ delete options;
523
+ throw( VError() );
524
+ }
525
+
526
+ if( options )
527
+ options->set_operation( operation );
528
+
529
+ /* Build from cache.
530
+ */
531
+ if( vips_cache_operation_buildp( &operation ) ) {
532
+ vips_object_unref_outputs( VIPS_OBJECT( operation ) );
533
+ g_object_unref( operation );
534
+ delete options;
535
+ throw( VError() );
536
+ }
537
+
538
+ /* Walk args again, writing output.
539
+ */
540
+ if( options )
541
+ options->get_operation( operation );
542
+
543
+ /* We're done with options!
544
+ */
545
+ delete options;
546
+
547
+ /* The operation we have built should now have been reffed by
548
+ * one of its arguments or have finished its work. Either
549
+ * way, we can unref.
550
+ */
551
+ g_object_unref( operation );
552
+ }
553
+
554
+ void
555
+ VImage::call( const char *operation_name, VOption *options )
556
+ {
557
+ call_option_string( operation_name, NULL, options );
558
+ }
559
+
560
+ VImage
561
+ VImage::new_from_file( const char *name, VOption *options )
562
+ {
563
+ char filename[VIPS_PATH_MAX];
564
+ char option_string[VIPS_PATH_MAX];
565
+ const char *operation_name;
566
+
567
+ VImage out;
568
+
569
+ vips__filename_split8( name, filename, option_string );
570
+ if( !(operation_name = vips_foreign_find_load( filename )) ) {
571
+ delete options;
572
+ throw VError();
573
+ }
574
+
575
+ call_option_string( operation_name, option_string,
576
+ (options ? options : VImage::option())->
577
+ set( "filename", filename )->
578
+ set( "out", &out ) );
579
+
580
+ return( out );
581
+ }
582
+
583
+ VImage
584
+ VImage::new_from_buffer( const void *buf, size_t len, const char *option_string,
585
+ VOption *options )
586
+ {
587
+ const char *operation_name;
588
+ VipsBlob *blob;
589
+ VImage out;
590
+
591
+ if( !(operation_name = vips_foreign_find_load_buffer( buf, len )) ) {
592
+ delete options;
593
+ throw( VError() );
594
+ }
595
+
596
+ /* We don't take a copy of the data or free it.
597
+ */
598
+ blob = vips_blob_new( NULL, buf, len );
599
+ options = (options ? options : VImage::option())->
600
+ set( "buffer", blob )->
601
+ set( "out", &out );
602
+ vips_area_unref( VIPS_AREA( blob ) );
603
+
604
+ call_option_string( operation_name, option_string, options );
605
+
606
+ return( out );
607
+ }
608
+
609
+ VImage
610
+ VImage::new_from_buffer( const std::string &buf, const char *option_string,
611
+ VOption *options )
612
+ {
613
+ return( new_from_buffer( buf.c_str(), buf.size(),
614
+ option_string, options ) );
615
+ }
616
+
617
+ VImage
618
+ VImage::new_from_source( VSource source, const char *option_string,
619
+ VOption *options )
620
+ {
621
+ const char *operation_name;
622
+ VImage out;
623
+
624
+ if( !(operation_name = vips_foreign_find_load_source(
625
+ source.get_source() )) ) {
626
+ delete options;
627
+ throw( VError() );
628
+ }
629
+
630
+ options = (options ? options : VImage::option())->
631
+ set( "source", source )->
632
+ set( "out", &out );
633
+
634
+ call_option_string( operation_name, option_string, options );
635
+
636
+ return( out );
637
+ }
638
+
639
+ VImage
640
+ VImage::new_from_memory_steal( void *data, size_t size,
641
+ int width, int height, int bands, VipsBandFormat format )
642
+ {
643
+ VipsImage *image;
644
+
645
+ if( !(image = vips_image_new_from_memory( data, size,
646
+ width, height, bands, format )) )
647
+ throw( VError() );
648
+
649
+ g_signal_connect( image, "postclose",
650
+ G_CALLBACK( vips_image_free_buffer ), data);
651
+
652
+ return( VImage( image ) );
653
+ }
654
+
655
+ VImage
656
+ VImage::new_matrix( int width, int height )
657
+ {
658
+ return( VImage( vips_image_new_matrix( width, height ) ) );
659
+ }
660
+
661
+ VImage
662
+ VImage::new_matrixv( int width, int height, ... )
663
+ {
664
+ VImage matrix = new_matrix( width, height );
665
+ VipsImage *vips_matrix = matrix.get_image();
666
+
667
+ va_list ap;
668
+
669
+ va_start( ap, height );
670
+ for( int y = 0; y < height; y++ )
671
+ for( int x = 0; x < width; x++ )
672
+ *VIPS_MATRIX( vips_matrix, x, y ) =
673
+ va_arg( ap, double );
674
+ va_end( ap );
675
+
676
+ return( matrix );
677
+ }
678
+
679
+ VImage
680
+ VImage::write( VImage out ) const
681
+ {
682
+ if( vips_image_write( this->get_image(), out.get_image() ) )
683
+ throw VError();
684
+
685
+ return( out );
686
+ }
687
+
688
+ void
689
+ VImage::write_to_file( const char *name, VOption *options ) const
690
+ {
691
+ char filename[VIPS_PATH_MAX];
692
+ char option_string[VIPS_PATH_MAX];
693
+ const char *operation_name;
694
+
695
+ vips__filename_split8( name, filename, option_string );
696
+ if( !(operation_name = vips_foreign_find_save( filename )) ) {
697
+ delete options;
698
+ throw VError();
699
+ }
700
+
701
+ call_option_string( operation_name, option_string,
702
+ (options ? options : VImage::option())->
703
+ set( "in", *this )->
704
+ set( "filename", filename ) );
705
+ }
706
+
707
+ void
708
+ VImage::write_to_buffer( const char *suffix, void **buf, size_t *size,
709
+ VOption *options ) const
710
+ {
711
+ char filename[VIPS_PATH_MAX];
712
+ char option_string[VIPS_PATH_MAX];
713
+ const char *operation_name;
714
+ VipsBlob *blob;
715
+
716
+ /* Save with the new target API if we can. Fall back to the older
717
+ * mechanism in case the saver we need has not been converted yet.
718
+ *
719
+ * We need to hide any errors from this first phase.
720
+ */
721
+ vips__filename_split8( suffix, filename, option_string );
722
+
723
+ vips_error_freeze();
724
+ operation_name = vips_foreign_find_save_target( filename );
725
+ vips_error_thaw();
726
+
727
+ if( operation_name ) {
728
+ VTarget target = VTarget::new_to_memory();
729
+
730
+ call_option_string( operation_name, option_string,
731
+ (options ? options : VImage::option())->
732
+ set( "in", *this )->
733
+ set( "target", target ) );
734
+
735
+ g_object_get( target.get_target(), "blob", &blob, (void *) NULL );
736
+ }
737
+ else if( (operation_name = vips_foreign_find_save_buffer( filename )) ) {
738
+ call_option_string( operation_name, option_string,
739
+ (options ? options : VImage::option())->
740
+ set( "in", *this )->
741
+ set( "buffer", &blob ) );
742
+ }
743
+ else {
744
+ delete options;
745
+ throw VError();
746
+ }
747
+
748
+ if( blob ) {
749
+ if( buf ) {
750
+ *buf = VIPS_AREA( blob )->data;
751
+ VIPS_AREA( blob )->free_fn = NULL;
752
+ }
753
+ if( size )
754
+ *size = VIPS_AREA( blob )->length;
755
+
756
+ vips_area_unref( VIPS_AREA( blob ) );
757
+ }
758
+ }
759
+
760
+ void
761
+ VImage::write_to_target( const char *suffix, VTarget target,
762
+ VOption *options ) const
763
+ {
764
+ char filename[VIPS_PATH_MAX];
765
+ char option_string[VIPS_PATH_MAX];
766
+ const char *operation_name;
767
+
768
+ vips__filename_split8( suffix, filename, option_string );
769
+ if( !(operation_name = vips_foreign_find_save_target( filename )) ) {
770
+ delete options;
771
+ throw VError();
772
+ }
773
+
774
+ call_option_string( operation_name, option_string,
775
+ (options ? options : VImage::option())->
776
+ set( "in", *this )->
777
+ set( "target", target ) );
778
+ }
779
+
780
+ VRegion
781
+ VImage::region() const
782
+ {
783
+ return VRegion::new_from_image( *this );
784
+ }
785
+
786
+ VRegion
787
+ VImage::region( VipsRect *rect ) const
788
+ {
789
+ VRegion region = VRegion::new_from_image( *this );
790
+
791
+ region.prepare( rect );
792
+
793
+ return region;
794
+ }
795
+
796
+ VRegion
797
+ VImage::region( int left, int top, int width, int height ) const
798
+ {
799
+ VRegion region = VRegion::new_from_image( *this );
800
+
801
+ region.prepare( left, top, width, height );
802
+
803
+ return region;
804
+ }
805
+
806
+ #include "vips-operators.cpp"
807
+
808
+ std::vector<VImage>
809
+ VImage::bandsplit( VOption *options ) const
810
+ {
811
+ std::vector<VImage> b;
812
+ b.reserve(bands());
813
+
814
+ for( int i = 0; i < bands(); i++ )
815
+ b.push_back( extract_band( i ) );
816
+
817
+ return( b );
818
+ }
819
+
820
+ VImage
821
+ VImage::bandjoin( VImage other, VOption *options ) const
822
+ {
823
+ VImage v[2] = { *this, other };
824
+ std::vector<VImage> vec( v, v + VIPS_NUMBER( v ) );
825
+
826
+ return( bandjoin( vec, options ) );
827
+ }
828
+
829
+ VImage
830
+ VImage::composite( VImage other, VipsBlendMode mode, VOption *options ) const
831
+ {
832
+ VImage v[2] = { *this, other };
833
+ std::vector<VImage> ivec( v, v + VIPS_NUMBER( v ) );
834
+ int m[1] = { static_cast<int>( mode ) };
835
+ std::vector<int> mvec( m, m + VIPS_NUMBER( m ) );
836
+
837
+ return( composite( ivec, mvec, options ) );
838
+ }
839
+
840
+ std::complex<double>
841
+ VImage::minpos( VOption *options ) const
842
+ {
843
+ double x, y;
844
+
845
+ (void) min(
846
+ (options ? options : VImage::option()) ->
847
+ set( "x", &x ) ->
848
+ set( "y", &y ) );
849
+
850
+ return( std::complex<double>( x, y ) );
851
+ }
852
+
853
+ std::complex<double>
854
+ VImage::maxpos( VOption *options ) const
855
+ {
856
+ double x, y;
857
+
858
+ (void) max(
859
+ (options ? options : VImage::option()) ->
860
+ set( "x", &x ) ->
861
+ set( "y", &y ) );
862
+
863
+ return( std::complex<double>( x, y ) );
864
+ }
865
+
866
+ // Operator overloads
867
+
868
+ VImage
869
+ VImage::operator[]( int index ) const
870
+ {
871
+ return( this->extract_band( index ) );
872
+ }
873
+
874
+ std::vector<double>
875
+ VImage::operator()( int x, int y ) const
876
+ {
877
+ return( this->getpoint( x, y ) );
878
+ }
879
+
880
+ VImage
881
+ operator+( const VImage a, const VImage b )
882
+ {
883
+ return( a.add( b ) );
884
+ }
885
+
886
+ VImage
887
+ operator+( double a, const VImage b )
888
+ {
889
+ return( b.linear( 1.0, a ) );
890
+ }
891
+
892
+ VImage
893
+ operator+( const VImage a, double b )
894
+ {
895
+ return( a.linear( 1.0, b ) );
896
+ }
897
+
898
+ VImage
899
+ operator+( const std::vector<double> a, const VImage b )
900
+ {
901
+ return( b.linear( 1.0, a ) );
902
+ }
903
+
904
+ VImage
905
+ operator+( const VImage a, const std::vector<double> b )
906
+ {
907
+ return( a.linear( 1.0, b ) );
908
+ }
909
+
910
+ VImage &
911
+ operator+=( VImage &a, const VImage b )
912
+ {
913
+ return( a = a + b );
914
+ }
915
+
916
+ VImage &
917
+ operator+=( VImage &a, const double b )
918
+ {
919
+ return( a = a + b );
920
+ }
921
+
922
+ VImage &
923
+ operator+=( VImage &a, const std::vector<double> b )
924
+ {
925
+ return( a = a + b );
926
+ }
927
+
928
+ VImage
929
+ operator-( const VImage a, const VImage b )
930
+ {
931
+ return( a.subtract( b ) );
932
+ }
933
+
934
+ VImage
935
+ operator-( double a, const VImage b )
936
+ {
937
+ return( b.linear( -1.0, a ) );
938
+ }
939
+
940
+ VImage
941
+ operator-( const VImage a, double b )
942
+ {
943
+ return( a.linear( 1.0, -b ) );
944
+ }
945
+
946
+ VImage
947
+ operator-( const std::vector<double> a, const VImage b )
948
+ {
949
+ return( b.linear( -1.0, a ) );
950
+ }
951
+
952
+ VImage
953
+ operator-( const VImage a, const std::vector<double> b )
954
+ {
955
+ return( a.linear( 1.0, vips::negate( b ) ) );
956
+ }
957
+
958
+ VImage &
959
+ operator-=( VImage &a, const VImage b )
960
+ {
961
+ return( a = a - b );
962
+ }
963
+
964
+ VImage &
965
+ operator-=( VImage &a, const double b )
966
+ {
967
+ return( a = a - b );
968
+ }
969
+
970
+ VImage &
971
+ operator-=( VImage &a, const std::vector<double> b )
972
+ {
973
+ return( a = a - b );
974
+ }
975
+
976
+ VImage
977
+ operator-( const VImage a )
978
+ {
979
+ return( a * -1 );
980
+ }
981
+
982
+ VImage
983
+ operator*( const VImage a, const VImage b )
984
+ {
985
+ return( a.multiply( b ) );
986
+ }
987
+
988
+ VImage
989
+ operator*( double a, const VImage b )
990
+ {
991
+ return( b.linear( a, 0.0 ) );
992
+ }
993
+
994
+ VImage
995
+ operator*( const VImage a, double b )
996
+ {
997
+ return( a.linear( b, 0.0 ) );
998
+ }
999
+
1000
+ VImage
1001
+ operator*( const std::vector<double> a, const VImage b )
1002
+ {
1003
+ return( b.linear( a, 0.0 ) );
1004
+ }
1005
+
1006
+ VImage
1007
+ operator*( const VImage a, const std::vector<double> b )
1008
+ {
1009
+ return( a.linear( b, 0.0 ) );
1010
+ }
1011
+
1012
+ VImage &
1013
+ operator*=( VImage &a, const VImage b )
1014
+ {
1015
+ return( a = a * b );
1016
+ }
1017
+
1018
+ VImage &
1019
+ operator*=( VImage &a, const double b )
1020
+ {
1021
+ return( a = a * b );
1022
+ }
1023
+
1024
+ VImage &
1025
+ operator*=( VImage &a, const std::vector<double> b )
1026
+ {
1027
+ return( a = a * b );
1028
+ }
1029
+
1030
+ VImage
1031
+ operator/( const VImage a, const VImage b )
1032
+ {
1033
+ return( a.divide( b ) );
1034
+ }
1035
+
1036
+ VImage
1037
+ operator/( double a, const VImage b )
1038
+ {
1039
+ return( b.pow( -1.0 ).linear( a, 0.0 ) );
1040
+ }
1041
+
1042
+ VImage
1043
+ operator/( const VImage a, double b )
1044
+ {
1045
+ return( a.linear( 1.0 / b, 0.0 ) );
1046
+ }
1047
+
1048
+ VImage
1049
+ operator/( const std::vector<double> a, const VImage b )
1050
+ {
1051
+ return( b.pow( -1.0 ).linear( a, 0.0 ) );
1052
+ }
1053
+
1054
+ VImage
1055
+ operator/( const VImage a, const std::vector<double> b )
1056
+ {
1057
+ return( a.linear( vips::invert( b ), 0.0 ) );
1058
+ }
1059
+
1060
+ VImage &
1061
+ operator/=( VImage &a, const VImage b )
1062
+ {
1063
+ return( a = a / b );
1064
+ }
1065
+
1066
+ VImage &
1067
+ operator/=( VImage &a, const double b )
1068
+ {
1069
+ return( a = a / b );
1070
+ }
1071
+
1072
+ VImage &
1073
+ operator/=( VImage &a, const std::vector<double> b )
1074
+ {
1075
+ return( a = a / b );
1076
+ }
1077
+
1078
+ VImage
1079
+ operator%( const VImage a, const VImage b )
1080
+ {
1081
+ return( a.remainder( b ) );
1082
+ }
1083
+
1084
+ VImage
1085
+ operator%( const VImage a, const double b )
1086
+ {
1087
+ return( a.remainder_const( to_vector( b ) ) );
1088
+ }
1089
+
1090
+ VImage
1091
+ operator%( const VImage a, const std::vector<double> b )
1092
+ {
1093
+ return( a.remainder_const( b ) );
1094
+ }
1095
+
1096
+ VImage &
1097
+ operator%=( VImage &a, const VImage b )
1098
+ {
1099
+ return( a = a % b );
1100
+ }
1101
+
1102
+ VImage &
1103
+ operator%=( VImage &a, const double b )
1104
+ {
1105
+ return( a = a % b );
1106
+ }
1107
+
1108
+ VImage &
1109
+ operator%=( VImage &a, const std::vector<double> b )
1110
+ {
1111
+ return( a = a % b );
1112
+ }
1113
+
1114
+ VImage
1115
+ operator<( const VImage a, const VImage b )
1116
+ {
1117
+ return( a.relational( b, VIPS_OPERATION_RELATIONAL_LESS ) );
1118
+ }
1119
+
1120
+ VImage
1121
+ operator<( const double a, const VImage b )
1122
+ {
1123
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1124
+ to_vector( a ) ) );
1125
+ }
1126
+
1127
+ VImage
1128
+ operator<( const VImage a, const double b )
1129
+ {
1130
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1131
+ to_vector( b ) ) );
1132
+ }
1133
+
1134
+ VImage
1135
+ operator<( const std::vector<double> a, const VImage b )
1136
+ {
1137
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1138
+ a ) );
1139
+ }
1140
+
1141
+ VImage
1142
+ operator<( const VImage a, const std::vector<double> b )
1143
+ {
1144
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1145
+ b ) );
1146
+ }
1147
+
1148
+ VImage
1149
+ operator<=( const VImage a, const VImage b )
1150
+ {
1151
+ return( a.relational( b, VIPS_OPERATION_RELATIONAL_LESSEQ ) );
1152
+ }
1153
+
1154
+ VImage
1155
+ operator<=( const double a, const VImage b )
1156
+ {
1157
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1158
+ to_vector( a ) ) );
1159
+ }
1160
+
1161
+ VImage
1162
+ operator<=( const VImage a, const double b )
1163
+ {
1164
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1165
+ to_vector( b ) ) );
1166
+ }
1167
+
1168
+ VImage
1169
+ operator<=( const std::vector<double> a, const VImage b )
1170
+ {
1171
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1172
+ a ) );
1173
+ }
1174
+
1175
+ VImage
1176
+ operator<=( const VImage a, const std::vector<double> b )
1177
+ {
1178
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1179
+ b ) );
1180
+ }
1181
+
1182
+ VImage
1183
+ operator>( const VImage a, const VImage b )
1184
+ {
1185
+ return( a.relational( b, VIPS_OPERATION_RELATIONAL_MORE ) );
1186
+ }
1187
+
1188
+ VImage
1189
+ operator>( const double a, const VImage b )
1190
+ {
1191
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1192
+ to_vector( a ) ) );
1193
+ }
1194
+
1195
+ VImage
1196
+ operator>( const VImage a, const double b )
1197
+ {
1198
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1199
+ to_vector( b ) ) );
1200
+ }
1201
+
1202
+ VImage
1203
+ operator>( const std::vector<double> a, const VImage b )
1204
+ {
1205
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1206
+ a ) );
1207
+ }
1208
+
1209
+ VImage
1210
+ operator>( const VImage a, const std::vector<double> b )
1211
+ {
1212
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1213
+ b ) );
1214
+ }
1215
+
1216
+ VImage
1217
+ operator>=( const VImage a, const VImage b )
1218
+ {
1219
+ return( a.relational( b, VIPS_OPERATION_RELATIONAL_MOREEQ ) );
1220
+ }
1221
+
1222
+ VImage
1223
+ operator>=( const double a, const VImage b )
1224
+ {
1225
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1226
+ to_vector( a ) ) );
1227
+ }
1228
+
1229
+ VImage
1230
+ operator>=( const VImage a, const double b )
1231
+ {
1232
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1233
+ to_vector( b ) ) );
1234
+ }
1235
+
1236
+ VImage
1237
+ operator>=( const std::vector<double> a, const VImage b )
1238
+ {
1239
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1240
+ a ) );
1241
+ }
1242
+
1243
+ VImage
1244
+ operator>=( const VImage a, const std::vector<double> b )
1245
+ {
1246
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1247
+ b ) );
1248
+ }
1249
+
1250
+ VImage
1251
+ operator==( const VImage a, const VImage b )
1252
+ {
1253
+ return( a.relational( b, VIPS_OPERATION_RELATIONAL_EQUAL ) );
1254
+ }
1255
+
1256
+ VImage
1257
+ operator==( const double a, const VImage b )
1258
+ {
1259
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1260
+ to_vector( a ) ) );
1261
+ }
1262
+
1263
+ VImage
1264
+ operator==( const VImage a, const double b )
1265
+ {
1266
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1267
+ to_vector( b ) ) );
1268
+ }
1269
+
1270
+ VImage
1271
+ operator==( const std::vector<double> a, const VImage b )
1272
+ {
1273
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1274
+ a ) );
1275
+ }
1276
+
1277
+ VImage
1278
+ operator==( const VImage a, const std::vector<double> b )
1279
+ {
1280
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1281
+ b ) );
1282
+ }
1283
+
1284
+ VImage
1285
+ operator!=( const VImage a, const VImage b )
1286
+ {
1287
+ return( a.relational( b, VIPS_OPERATION_RELATIONAL_NOTEQ ) );
1288
+ }
1289
+
1290
+ VImage
1291
+ operator!=( const double a, const VImage b )
1292
+ {
1293
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1294
+ to_vector( a ) ) );
1295
+ }
1296
+
1297
+ VImage
1298
+ operator!=( const VImage a, const double b )
1299
+ {
1300
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1301
+ to_vector( b ) ) );
1302
+ }
1303
+
1304
+ VImage
1305
+ operator!=( const std::vector<double> a, const VImage b )
1306
+ {
1307
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1308
+ a ) );
1309
+ }
1310
+
1311
+ VImage
1312
+ operator!=( const VImage a, const std::vector<double> b )
1313
+ {
1314
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1315
+ b ) );
1316
+ }
1317
+
1318
+ VImage
1319
+ operator&( const VImage a, const VImage b )
1320
+ {
1321
+ return( a.boolean( b, VIPS_OPERATION_BOOLEAN_AND ) );
1322
+ }
1323
+
1324
+ VImage
1325
+ operator&( const double a, const VImage b )
1326
+ {
1327
+ return( b.boolean_const( VIPS_OPERATION_BOOLEAN_AND,
1328
+ to_vector( a ) ) );
1329
+ }
1330
+
1331
+ VImage
1332
+ operator&( const VImage a, const double b )
1333
+ {
1334
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_AND,
1335
+ to_vector( b ) ) );
1336
+ }
1337
+
1338
+ VImage
1339
+ operator&( const std::vector<double> a, const VImage b )
1340
+ {
1341
+ return( b.boolean_const( VIPS_OPERATION_BOOLEAN_AND, a ) );
1342
+ }
1343
+
1344
+ VImage
1345
+ operator&( const VImage a, const std::vector<double> b )
1346
+ {
1347
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_AND, b ) );
1348
+ }
1349
+
1350
+ VImage &
1351
+ operator&=( VImage &a, const VImage b )
1352
+ {
1353
+ return( a = a & b );
1354
+ }
1355
+
1356
+ VImage &
1357
+ operator&=( VImage &a, const double b )
1358
+ {
1359
+ return( a = a & b );
1360
+ }
1361
+
1362
+ VImage &
1363
+ operator&=( VImage &a, const std::vector<double> b )
1364
+ {
1365
+ return( a = a & b );
1366
+ }
1367
+
1368
+ VImage
1369
+ operator|( const VImage a, const VImage b )
1370
+ {
1371
+ return( a.boolean( b, VIPS_OPERATION_BOOLEAN_OR ) );
1372
+ }
1373
+
1374
+ VImage
1375
+ operator|( const double a, const VImage b )
1376
+ {
1377
+ return( b.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1378
+ to_vector( a ) ) );
1379
+ }
1380
+
1381
+ VImage
1382
+ operator|( const VImage a, const double b )
1383
+ {
1384
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1385
+ to_vector( b ) ) );
1386
+ }
1387
+
1388
+ VImage
1389
+ operator|( const std::vector<double> a, const VImage b )
1390
+ {
1391
+ return( b.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1392
+ a ) );
1393
+ }
1394
+
1395
+ VImage
1396
+ operator|( const VImage a, const std::vector<double> b )
1397
+ {
1398
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1399
+ b ) );
1400
+ }
1401
+
1402
+ VImage &
1403
+ operator|=( VImage &a, const VImage b )
1404
+ {
1405
+ return( a = a | b );
1406
+ }
1407
+
1408
+ VImage &
1409
+ operator|=( VImage &a, const double b )
1410
+ {
1411
+ return( a = a | b );
1412
+ }
1413
+
1414
+ VImage &
1415
+ operator|=( VImage &a, const std::vector<double> b )
1416
+ {
1417
+ return( a = a | b );
1418
+ }
1419
+
1420
+ VImage
1421
+ operator^( const VImage a, const VImage b )
1422
+ {
1423
+ return( a.boolean( b, VIPS_OPERATION_BOOLEAN_EOR ) );
1424
+ }
1425
+
1426
+ VImage
1427
+ operator^( const double a, const VImage b )
1428
+ {
1429
+ return( b.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1430
+ to_vector( a ) ) );
1431
+ }
1432
+
1433
+ VImage
1434
+ operator^( const VImage a, const double b )
1435
+ {
1436
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1437
+ to_vector( b ) ) );
1438
+ }
1439
+
1440
+ VImage
1441
+ operator^( const std::vector<double> a, const VImage b )
1442
+ {
1443
+ return( b.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1444
+ a ) );
1445
+ }
1446
+
1447
+ VImage
1448
+ operator^( const VImage a, const std::vector<double> b )
1449
+ {
1450
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1451
+ b ) );
1452
+ }
1453
+
1454
+ VImage &
1455
+ operator^=( VImage &a, const VImage b )
1456
+ {
1457
+ return( a = a ^ b );
1458
+ }
1459
+
1460
+ VImage &
1461
+ operator^=( VImage &a, const double b )
1462
+ {
1463
+ return( a = a ^ b );
1464
+ }
1465
+
1466
+ VImage &
1467
+ operator^=( VImage &a, const std::vector<double> b )
1468
+ {
1469
+ return( a = a ^ b );
1470
+ }
1471
+
1472
+ VImage
1473
+ operator<<( const VImage a, const VImage b )
1474
+ {
1475
+ return( a.boolean( b, VIPS_OPERATION_BOOLEAN_LSHIFT ) );
1476
+ }
1477
+
1478
+ VImage
1479
+ operator<<( const VImage a, const double b )
1480
+ {
1481
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_LSHIFT,
1482
+ to_vector( b ) ) );
1483
+ }
1484
+
1485
+ VImage
1486
+ operator<<( const VImage a, const std::vector<double> b )
1487
+ {
1488
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_LSHIFT,
1489
+ b ) );
1490
+ }
1491
+
1492
+ VImage &
1493
+ operator<<=( VImage &a, const VImage b )
1494
+ {
1495
+ return( a = a << b );
1496
+ }
1497
+
1498
+ VImage &
1499
+ operator<<=( VImage &a, const double b )
1500
+ {
1501
+ return( a = a << b );
1502
+ }
1503
+
1504
+ VImage &
1505
+ operator<<=( VImage &a, const std::vector<double> b )
1506
+ {
1507
+ return( a = a << b );
1508
+ }
1509
+
1510
+ VImage
1511
+ operator>>( const VImage a, const VImage b )
1512
+ {
1513
+ return( a.boolean( b, VIPS_OPERATION_BOOLEAN_RSHIFT ) );
1514
+ }
1515
+
1516
+ VImage
1517
+ operator>>( const VImage a, const double b )
1518
+ {
1519
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_RSHIFT,
1520
+ to_vector( b ) ) );
1521
+ }
1522
+
1523
+ VImage
1524
+ operator>>( const VImage a, const std::vector<double> b )
1525
+ {
1526
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_RSHIFT,
1527
+ b ) );
1528
+ }
1529
+
1530
+ VImage &
1531
+ operator>>=( VImage &a, const VImage b )
1532
+ {
1533
+ return( a = a << b );
1534
+ }
1535
+
1536
+ VImage &
1537
+ operator>>=( VImage &a, const double b )
1538
+ {
1539
+ return( a = a << b );
1540
+ }
1541
+
1542
+ VImage &
1543
+ operator>>=( VImage &a, const std::vector<double> b )
1544
+ {
1545
+ return( a = a << b );
1546
+ }
1547
+
1548
+ VIPS_NAMESPACE_END