ruby-iup 0.0.2 → 0.1.0

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 (478) hide show
  1. data/CHANGES +3 -0
  2. data/MANIFEST +8 -0
  3. data/MIT-LICENSE +18 -0
  4. data/README +12 -0
  5. data/Rakefile +68 -80
  6. data/doc/build_install.txt +9 -12
  7. data/examples/ctrl/cbox.rb +14 -15
  8. data/examples/ctrl/checkboard.rb +1 -1
  9. data/examples/ctrl/example1.rb +53 -53
  10. data/examples/ctrl/example2.rb +39 -39
  11. data/examples/ctrl/iupcolorbar.rb +95 -95
  12. data/examples/ctrl/iupcolorbrowser.rb +45 -45
  13. data/examples/ctrl/iupdial.rb +117 -117
  14. data/examples/ctrl/iupgetcolor.rb +7 -7
  15. data/examples/ctrl/iupgetparam.rb +62 -62
  16. data/examples/ctrl/iupglcanvas.rb +172 -172
  17. data/examples/ctrl/iupmask.rb +1 -3
  18. data/examples/ctrl/iupmatrix.rb +39 -39
  19. data/examples/ctrl/iupplot2.rb +2 -1
  20. data/examples/ctrl/iuptabs.rb +22 -22
  21. data/examples/ctrl/iuptree.rb +190 -190
  22. data/examples/ctrl/iupval.rb +71 -71
  23. data/examples/ctrl/numbering.rb +46 -46
  24. data/examples/ctrl/sample.rb +166 -166
  25. data/examples/dlg/iupfiledlg.rb +19 -19
  26. data/examples/dlg/iupgetfile.rb +19 -19
  27. data/examples/dlg/iuplistdialog.rb +26 -26
  28. data/examples/dlg/iupmessage.rb +5 -5
  29. data/examples/dlg/iupscanf.rb +17 -17
  30. data/examples/elem/iupdialog2.rb +25 -25
  31. data/examples/elem/iupfill.rb +51 -51
  32. data/examples/elem/iupframe.rb +25 -25
  33. data/examples/elem/iuphbox.rb +68 -68
  34. data/examples/elem/iupimage.rb +113 -113
  35. data/examples/elem/iupitem.rb +60 -60
  36. data/examples/elem/iuplabel.rb +57 -57
  37. data/examples/elem/iuplist.rb +41 -41
  38. data/examples/elem/iuplist2.rb +125 -125
  39. data/examples/elem/iupmenu.rb +32 -32
  40. data/examples/elem/iupmultiline.rb +24 -24
  41. data/examples/elem/iupmultiline2.rb +156 -156
  42. data/examples/elem/iupradio.rb +32 -32
  43. data/examples/elem/iupseparator.rb +81 -81
  44. data/examples/elem/iupsubmenu.rb +85 -85
  45. data/examples/elem/iuptext.rb +61 -61
  46. data/examples/elem/iuptimer.rb +36 -36
  47. data/examples/elem/iuptoggle.rb +110 -110
  48. data/examples/elem/iupvbox.rb +87 -87
  49. data/examples/elem/iupzbox.rb +60 -60
  50. data/examples/elem/mdisample.rb +377 -376
  51. data/examples/elem/scrollbar.rb +66 -66
  52. data/examples/elem/tray.rb +90 -90
  53. data/examples/func/iupgetattribute.rb +32 -32
  54. data/examples/func/iupidle.rb +48 -48
  55. data/ext/extconf.rb +62 -27
  56. data/ext/iup-linux/include/cd.h +9 -5
  57. data/ext/iup-linux/include/cd_private.h +13 -6
  58. data/ext/iup-linux/include/cdsvg.h +22 -0
  59. data/ext/iup-linux/include/im.h +287 -282
  60. data/ext/iup-linux/include/im_attrib.h +120 -116
  61. data/ext/iup-linux/include/im_attrib_flat.h +39 -39
  62. data/ext/iup-linux/include/im_binfile.h +224 -214
  63. data/ext/iup-linux/include/im_capture.h +365 -365
  64. data/ext/iup-linux/include/im_color.h +465 -465
  65. data/ext/iup-linux/include/im_colorhsi.h +56 -61
  66. data/ext/iup-linux/include/im_complex.h +180 -160
  67. data/ext/iup-linux/include/im_convert.h +142 -127
  68. data/ext/iup-linux/include/im_counter.h +69 -69
  69. data/ext/iup-linux/include/im_dib.h +195 -195
  70. data/ext/iup-linux/include/im_file.h +115 -111
  71. data/ext/iup-linux/include/im_format.h +97 -79
  72. data/ext/iup-linux/include/im_format_all.h +575 -576
  73. data/ext/iup-linux/include/im_format_avi.h +88 -87
  74. data/ext/iup-linux/include/im_format_ecw.h +93 -93
  75. data/ext/iup-linux/include/im_format_jp2.h +79 -78
  76. data/ext/iup-linux/include/im_format_raw.h +74 -64
  77. data/ext/iup-linux/include/im_format_wmv.h +101 -100
  78. data/ext/iup-linux/include/im_image.h +425 -403
  79. data/ext/iup-linux/include/im_kernel.h +315 -315
  80. data/ext/iup-linux/include/im_lib.h +191 -191
  81. data/ext/iup-linux/include/im_math.h +368 -368
  82. data/ext/iup-linux/include/im_math_op.h +214 -219
  83. data/ext/iup-linux/include/im_palette.h +172 -172
  84. data/ext/iup-linux/include/im_plus.h +73 -73
  85. data/ext/iup-linux/include/im_process.h +36 -35
  86. data/ext/iup-linux/include/im_process_ana.h +222 -221
  87. data/ext/iup-linux/include/im_process_glo.h +170 -170
  88. data/ext/iup-linux/include/im_process_loc.h +608 -577
  89. data/ext/iup-linux/include/im_process_pon.h +734 -712
  90. data/ext/iup-linux/include/im_raw.h +34 -34
  91. data/ext/iup-linux/include/im_util.h +277 -277
  92. data/ext/iup-linux/include/imlua.h +75 -83
  93. data/ext/iup-linux/include/iup.h +86 -40
  94. data/ext/iup-linux/include/iupcb.h +1 -25
  95. data/ext/iup-linux/include/iupcbox.h +1 -0
  96. data/ext/iup-linux/include/iupcbs.h +1 -1
  97. data/ext/iup-linux/include/iupcells.h +1 -130
  98. data/ext/iup-linux/include/iupcolorbar.h +1 -126
  99. data/ext/iup-linux/include/iupcontrols.h +26 -16
  100. data/ext/iup-linux/include/iupdef.h +205 -0
  101. data/ext/iup-linux/include/iupdial.h +1 -63
  102. data/ext/iup-linux/include/iupgauge.h +1 -57
  103. data/ext/iup-linux/include/iupgc.h +1 -0
  104. data/ext/iup-linux/include/iupgetparam.h +1 -27
  105. data/ext/iup-linux/include/iupgl.h +2 -7
  106. data/ext/iup-linux/include/iupim.h +7 -1
  107. data/ext/iup-linux/include/iupkey.h +4 -4
  108. data/ext/iup-linux/include/iupmask.h +2 -1
  109. data/ext/iup-linux/include/iupmatrix.h +1 -63
  110. data/ext/iup-linux/include/iupsbox.h +1 -0
  111. data/ext/iup-linux/include/iupspin.h +1 -21
  112. data/ext/iup-linux/include/iuptabs.h +1 -75
  113. data/ext/iup-linux/include/iuptree.h +1 -93
  114. data/ext/iup-linux/include/iupval.h +1 -46
  115. data/ext/iup-linux/include/old_im.h +59 -59
  116. data/ext/iup-linux/include/wd.h +5 -0
  117. data/ext/iup-linux/libcd.a +0 -0
  118. data/ext/iup-linux/libcdcontextplus.a +0 -0
  119. data/ext/iup-linux/libcdgdk.a +0 -0
  120. data/ext/iup-linux/libcdpdf.a +0 -0
  121. data/ext/iup-linux/libfreetype.a +0 -0
  122. data/ext/iup-linux/libim.a +0 -0
  123. data/ext/iup-linux/libim_fftw.a +0 -0
  124. data/ext/iup-linux/libim_jp2.a +0 -0
  125. data/ext/iup-linux/libim_process.a +0 -0
  126. data/ext/iup-linux/libiup.a +0 -0
  127. data/ext/iup-linux/libiup_pplot.a +0 -0
  128. data/ext/iup-linux/libiupcd.a +0 -0
  129. data/ext/iup-linux/libiupcontrols.a +0 -0
  130. data/ext/iup-linux/libiupgl.a +0 -0
  131. data/ext/iup-linux/libiupim.a +0 -0
  132. data/ext/iup-linux/libiupimglib.a +0 -0
  133. data/ext/iup-linux/libiupmot.a +0 -0
  134. data/ext/iup-linux/libpdflib.a +0 -0
  135. data/ext/{iup-win32 → iup-mingw32}/include/cd.h +9 -5
  136. data/ext/{iup-win32 → iup-mingw32}/include/cd_canvas.hpp +0 -0
  137. data/ext/{iup-win32 → iup-mingw32}/include/cd_old.h +0 -0
  138. data/ext/{iup-win32 → iup-mingw32}/include/cd_private.h +13 -6
  139. data/ext/{iup-win32 → iup-mingw32}/include/cdcgm.h +0 -0
  140. data/ext/{iup-win32 → iup-mingw32}/include/cdclipbd.h +0 -0
  141. data/ext/{iup-win32 → iup-mingw32}/include/cddbuf.h +0 -0
  142. data/ext/{iup-win32 → iup-mingw32}/include/cddebug.h +0 -0
  143. data/ext/{iup-win32 → iup-mingw32}/include/cddgn.h +0 -0
  144. data/ext/{iup-win32 → iup-mingw32}/include/cddxf.h +0 -0
  145. data/ext/{iup-win32 → iup-mingw32}/include/cdemf.h +0 -0
  146. data/ext/{iup-win32 → iup-mingw32}/include/cdgdiplus.h +0 -0
  147. data/ext/{iup-win32 → iup-mingw32}/include/cdimage.h +0 -0
  148. data/ext/{iup-win32 → iup-mingw32}/include/cdirgb.h +0 -0
  149. data/ext/{iup-win32 → iup-mingw32}/include/cdiup.h +0 -0
  150. data/ext/{iup-win32 → iup-mingw32}/include/cdlua.h +0 -0
  151. data/ext/{iup-win32 → iup-mingw32}/include/cdlua3_private.h +0 -0
  152. data/ext/{iup-win32 → iup-mingw32}/include/cdlua5_private.h +0 -0
  153. data/ext/{iup-win32 → iup-mingw32}/include/cdluaim.h +0 -0
  154. data/ext/{iup-win32 → iup-mingw32}/include/cdluaiup.h +0 -0
  155. data/ext/{iup-win32 → iup-mingw32}/include/cdluapdf.h +0 -0
  156. data/ext/{iup-win32 → iup-mingw32}/include/cdmf.h +0 -0
  157. data/ext/{iup-win32 → iup-mingw32}/include/cdmf_private.h +0 -0
  158. data/ext/{iup-win32 → iup-mingw32}/include/cdnative.h +0 -0
  159. data/ext/{iup-win32 → iup-mingw32}/include/cdpdf.h +0 -0
  160. data/ext/{iup-win32 → iup-mingw32}/include/cdpicture.h +0 -0
  161. data/ext/{iup-win32 → iup-mingw32}/include/cdprint.h +0 -0
  162. data/ext/{iup-win32 → iup-mingw32}/include/cdps.h +0 -0
  163. data/ext/iup-mingw32/include/cdsvg.h +22 -0
  164. data/ext/{iup-win32 → iup-mingw32}/include/cdwmf.h +0 -0
  165. data/ext/iup-mingw32/include/im.h +287 -0
  166. data/ext/iup-mingw32/include/im_attrib.h +120 -0
  167. data/ext/iup-mingw32/include/im_attrib_flat.h +39 -0
  168. data/ext/iup-mingw32/include/im_binfile.h +224 -0
  169. data/ext/iup-mingw32/include/im_capture.h +365 -0
  170. data/ext/iup-mingw32/include/im_color.h +465 -0
  171. data/ext/iup-mingw32/include/im_colorhsi.h +56 -0
  172. data/ext/iup-mingw32/include/im_complex.h +180 -0
  173. data/ext/iup-mingw32/include/im_convert.h +142 -0
  174. data/ext/iup-mingw32/include/im_counter.h +69 -0
  175. data/ext/iup-mingw32/include/im_dib.h +195 -0
  176. data/ext/iup-mingw32/include/im_file.h +115 -0
  177. data/ext/iup-mingw32/include/im_format.h +97 -0
  178. data/ext/iup-mingw32/include/im_format_all.h +575 -0
  179. data/ext/iup-mingw32/include/im_format_avi.h +88 -0
  180. data/ext/iup-mingw32/include/im_format_ecw.h +93 -0
  181. data/ext/iup-mingw32/include/im_format_jp2.h +79 -0
  182. data/ext/iup-mingw32/include/im_format_raw.h +74 -0
  183. data/ext/iup-mingw32/include/im_format_wmv.h +101 -0
  184. data/ext/iup-mingw32/include/im_image.h +425 -0
  185. data/ext/iup-mingw32/include/im_kernel.h +315 -0
  186. data/ext/iup-mingw32/include/im_lib.h +191 -0
  187. data/ext/iup-mingw32/include/im_math.h +368 -0
  188. data/ext/iup-mingw32/include/im_math_op.h +214 -0
  189. data/ext/iup-mingw32/include/im_palette.h +172 -0
  190. data/ext/iup-mingw32/include/im_plus.h +73 -0
  191. data/ext/iup-mingw32/include/im_process.h +36 -0
  192. data/ext/iup-mingw32/include/im_process_ana.h +222 -0
  193. data/ext/iup-mingw32/include/im_process_glo.h +170 -0
  194. data/ext/iup-mingw32/include/im_process_loc.h +608 -0
  195. data/ext/iup-mingw32/include/im_process_pon.h +734 -0
  196. data/ext/iup-mingw32/include/im_raw.h +34 -0
  197. data/ext/iup-mingw32/include/im_util.h +277 -0
  198. data/ext/iup-mingw32/include/imlua.h +75 -0
  199. data/ext/{iup-win32 → iup-mingw32}/include/iup.h +86 -40
  200. data/ext/{iup-win32 → iup-mingw32}/include/iup_pplot.h +0 -0
  201. data/ext/iup-mingw32/include/iupcb.h +1 -0
  202. data/ext/iup-mingw32/include/iupcbox.h +1 -0
  203. data/ext/{iup-win32 → iup-mingw32}/include/iupcbs.h +1 -1
  204. data/ext/iup-mingw32/include/iupcells.h +1 -0
  205. data/ext/iup-mingw32/include/iupcolorbar.h +1 -0
  206. data/ext/iup-mingw32/include/iupcontrols.h +46 -0
  207. data/ext/{iup-win32 → iup-mingw32}/include/iupdef.h +205 -0
  208. data/ext/iup-mingw32/include/iupdial.h +1 -0
  209. data/ext/iup-mingw32/include/iupgauge.h +1 -0
  210. data/ext/iup-mingw32/include/iupgc.h +1 -0
  211. data/ext/iup-mingw32/include/iupgetparam.h +1 -0
  212. data/ext/{iup-win32 → iup-mingw32}/include/iupgl.h +2 -7
  213. data/ext/{iup-win32 → iup-mingw32}/include/iupim.h +7 -1
  214. data/ext/{iup-win32 → iup-mingw32}/include/iupkey.h +4 -4
  215. data/ext/{iup-win32 → iup-mingw32}/include/iuplua.h +0 -0
  216. data/ext/{iup-win32 → iup-mingw32}/include/iuplua_pplot.h +0 -0
  217. data/ext/{iup-win32 → iup-mingw32}/include/iupluacontrols.h +0 -0
  218. data/ext/{iup-win32 → iup-mingw32}/include/iupluagl.h +0 -0
  219. data/ext/{iup-win32 → iup-mingw32}/include/iupluaim.h +0 -0
  220. data/ext/{iup-win32 → iup-mingw32}/include/iupluaole.h +0 -0
  221. data/ext/{iup-win32 → iup-mingw32}/include/iupmask.h +2 -1
  222. data/ext/iup-mingw32/include/iupmatrix.h +1 -0
  223. data/ext/{iup-win32 → iup-mingw32}/include/iupole.h +0 -0
  224. data/ext/iup-mingw32/include/iupsbox.h +1 -0
  225. data/ext/iup-mingw32/include/iupspin.h +1 -0
  226. data/ext/iup-mingw32/include/iuptabs.h +1 -0
  227. data/ext/iup-mingw32/include/iuptree.h +1 -0
  228. data/ext/iup-mingw32/include/iupval.h +1 -0
  229. data/ext/iup-mingw32/include/old_im.h +59 -0
  230. data/ext/{iup-win32 → iup-mingw32}/include/wd.h +5 -0
  231. data/ext/{iup-win32 → iup-mingw32}/include/wd_old.h +0 -0
  232. data/ext/iup-mingw32/libcd.a +0 -0
  233. data/ext/iup-mingw32/libcdpdf.a +0 -0
  234. data/ext/iup-mingw32/libfreetype6.a +0 -0
  235. data/ext/iup-mingw32/libim.a +0 -0
  236. data/ext/iup-mingw32/libim_avi.a +0 -0
  237. data/ext/iup-mingw32/libim_fftw.a +0 -0
  238. data/ext/iup-mingw32/libim_jp2.a +0 -0
  239. data/ext/iup-mingw32/libim_process.a +0 -0
  240. data/ext/iup-mingw32/libiup.a +0 -0
  241. data/ext/iup-mingw32/libiup_pplot.a +0 -0
  242. data/ext/iup-mingw32/libiupcd.a +0 -0
  243. data/ext/iup-mingw32/libiupcontrols.a +0 -0
  244. data/ext/iup-mingw32/libiupgl.a +0 -0
  245. data/ext/iup-mingw32/libiupim.a +0 -0
  246. data/ext/iup-mingw32/libiupimglib.a +0 -0
  247. data/ext/iup-mingw32/libiupole.a +0 -0
  248. data/ext/iup-mingw32/libpdflib.a +0 -0
  249. data/ext/iup-mswin32/cd.lib +0 -0
  250. data/ext/iup-mswin32/cdcontextplus.lib +0 -0
  251. data/ext/iup-mswin32/cdgdk.lib +0 -0
  252. data/ext/iup-mswin32/cdpdf.lib +0 -0
  253. data/ext/iup-mswin32/freetype6.lib +0 -0
  254. data/ext/iup-mswin32/im.lib +0 -0
  255. data/ext/iup-mswin32/im_avi.lib +0 -0
  256. data/ext/iup-mswin32/im_capture.lib +0 -0
  257. data/ext/iup-mswin32/im_fftw.lib +0 -0
  258. data/ext/iup-mswin32/im_jp2.lib +0 -0
  259. data/ext/iup-mswin32/im_process.lib +0 -0
  260. data/ext/iup-mswin32/im_wmv.lib +0 -0
  261. data/ext/iup-mswin32/include/cd.h +498 -0
  262. data/ext/iup-mswin32/include/cd_canvas.hpp +358 -0
  263. data/ext/iup-mswin32/include/cd_old.h +158 -0
  264. data/ext/iup-mswin32/include/cd_private.h +369 -0
  265. data/ext/iup-mswin32/include/cdcgm.h +34 -0
  266. data/ext/iup-mswin32/include/cdclipbd.h +22 -0
  267. data/ext/iup-mswin32/include/cddbuf.h +23 -0
  268. data/ext/iup-mswin32/include/cddebug.h +24 -0
  269. data/ext/iup-mswin32/include/cddgn.h +23 -0
  270. data/ext/iup-mswin32/include/cddxf.h +22 -0
  271. data/ext/iup-mswin32/include/cdemf.h +22 -0
  272. data/ext/iup-mswin32/include/cdgdiplus.h +29 -0
  273. data/ext/iup-mswin32/include/cdimage.h +23 -0
  274. data/ext/iup-mswin32/include/cdirgb.h +30 -0
  275. data/ext/iup-mswin32/include/cdiup.h +22 -0
  276. data/ext/iup-mswin32/include/cdlua.h +39 -0
  277. data/ext/iup-mswin32/include/cdlua3_private.h +120 -0
  278. data/ext/iup-mswin32/include/cdlua5_private.h +141 -0
  279. data/ext/iup-mswin32/include/cdluaim.h +24 -0
  280. data/ext/iup-mswin32/include/cdluaiup.h +27 -0
  281. data/ext/iup-mswin32/include/cdluapdf.h +27 -0
  282. data/ext/iup-mswin32/include/cdmf.h +24 -0
  283. data/ext/iup-mswin32/include/cdmf_private.h +32 -0
  284. data/ext/iup-mswin32/include/cdnative.h +26 -0
  285. data/ext/iup-mswin32/include/cdpdf.h +38 -0
  286. data/ext/iup-mswin32/include/cdpicture.h +22 -0
  287. data/ext/iup-mswin32/include/cdprint.h +23 -0
  288. data/ext/iup-mswin32/include/cdps.h +37 -0
  289. data/ext/iup-mswin32/include/cdsvg.h +22 -0
  290. data/ext/iup-mswin32/include/cdwmf.h +22 -0
  291. data/ext/iup-mswin32/include/im.h +287 -0
  292. data/ext/iup-mswin32/include/im_attrib.h +120 -0
  293. data/ext/iup-mswin32/include/im_attrib_flat.h +39 -0
  294. data/ext/iup-mswin32/include/im_binfile.h +224 -0
  295. data/ext/iup-mswin32/include/im_capture.h +365 -0
  296. data/ext/iup-mswin32/include/im_color.h +465 -0
  297. data/ext/iup-mswin32/include/im_colorhsi.h +56 -0
  298. data/ext/iup-mswin32/include/im_complex.h +180 -0
  299. data/ext/iup-mswin32/include/im_convert.h +142 -0
  300. data/ext/iup-mswin32/include/im_counter.h +69 -0
  301. data/ext/iup-mswin32/include/im_dib.h +195 -0
  302. data/ext/iup-mswin32/include/im_file.h +115 -0
  303. data/ext/iup-mswin32/include/im_format.h +97 -0
  304. data/ext/iup-mswin32/include/im_format_all.h +575 -0
  305. data/ext/iup-mswin32/include/im_format_avi.h +88 -0
  306. data/ext/iup-mswin32/include/im_format_ecw.h +93 -0
  307. data/ext/iup-mswin32/include/im_format_jp2.h +79 -0
  308. data/ext/iup-mswin32/include/im_format_raw.h +74 -0
  309. data/ext/iup-mswin32/include/im_format_wmv.h +101 -0
  310. data/ext/iup-mswin32/include/im_image.h +425 -0
  311. data/ext/iup-mswin32/include/im_kernel.h +315 -0
  312. data/ext/iup-mswin32/include/im_lib.h +191 -0
  313. data/ext/iup-mswin32/include/im_math.h +368 -0
  314. data/ext/iup-mswin32/include/im_math_op.h +214 -0
  315. data/ext/iup-mswin32/include/im_palette.h +172 -0
  316. data/ext/iup-mswin32/include/im_plus.h +73 -0
  317. data/ext/iup-mswin32/include/im_process.h +36 -0
  318. data/ext/iup-mswin32/include/im_process_ana.h +222 -0
  319. data/ext/iup-mswin32/include/im_process_glo.h +170 -0
  320. data/ext/iup-mswin32/include/im_process_loc.h +608 -0
  321. data/ext/iup-mswin32/include/im_process_pon.h +734 -0
  322. data/ext/iup-mswin32/include/im_raw.h +34 -0
  323. data/ext/iup-mswin32/include/im_util.h +277 -0
  324. data/ext/iup-mswin32/include/imlua.h +75 -0
  325. data/ext/iup-mswin32/include/iup.h +364 -0
  326. data/ext/iup-mswin32/include/iup_pplot.h +40 -0
  327. data/ext/iup-mswin32/include/iupcb.h +1 -0
  328. data/ext/iup-mswin32/include/iupcbox.h +1 -0
  329. data/ext/iup-mswin32/include/iupcbs.h +43 -0
  330. data/ext/iup-mswin32/include/iupcells.h +1 -0
  331. data/ext/iup-mswin32/include/iupcolorbar.h +1 -0
  332. data/ext/iup-mswin32/include/iupcontrols.h +46 -0
  333. data/ext/iup-mswin32/include/iupdef.h +725 -0
  334. data/ext/iup-mswin32/include/iupdial.h +1 -0
  335. data/ext/iup-mswin32/include/iupgauge.h +1 -0
  336. data/ext/iup-mswin32/include/iupgc.h +1 -0
  337. data/ext/iup-mswin32/include/iupgetparam.h +1 -0
  338. data/ext/iup-mswin32/include/iupgl.h +96 -0
  339. data/ext/iup-mswin32/include/iupim.h +27 -0
  340. data/ext/iup-mswin32/include/iupkey.h +457 -0
  341. data/ext/iup-mswin32/include/iuplua.h +41 -0
  342. data/ext/iup-mswin32/include/iuplua_pplot.h +26 -0
  343. data/ext/iup-mswin32/include/iupluacontrols.h +27 -0
  344. data/ext/iup-mswin32/include/iupluagl.h +26 -0
  345. data/ext/iup-mswin32/include/iupluaim.h +26 -0
  346. data/ext/iup-mswin32/include/iupluaole.h +26 -0
  347. data/ext/iup-mswin32/include/iupmask.h +41 -0
  348. data/ext/iup-mswin32/include/iupmatrix.h +1 -0
  349. data/ext/iup-mswin32/include/iupole.h +24 -0
  350. data/ext/iup-mswin32/include/iupsbox.h +1 -0
  351. data/ext/iup-mswin32/include/iupspin.h +1 -0
  352. data/ext/iup-mswin32/include/iuptabs.h +1 -0
  353. data/ext/iup-mswin32/include/iuptree.h +1 -0
  354. data/ext/iup-mswin32/include/iupval.h +1 -0
  355. data/ext/iup-mswin32/include/old_im.h +59 -0
  356. data/ext/iup-mswin32/include/wd.h +83 -0
  357. data/ext/iup-mswin32/include/wd_old.h +85 -0
  358. data/ext/iup-mswin32/iup.lib +0 -0
  359. data/ext/iup-mswin32/iup_pplot.lib +0 -0
  360. data/ext/iup-mswin32/iupcd.lib +0 -0
  361. data/ext/iup-mswin32/iupcontrols.lib +0 -0
  362. data/ext/iup-mswin32/iupgl.lib +0 -0
  363. data/ext/iup-mswin32/iupgtk.lib +0 -0
  364. data/ext/iup-mswin32/iupim.lib +0 -0
  365. data/ext/{iup-win32/iupimglib.dll → iup-mswin32/iupimglib.lib} +0 -0
  366. data/ext/iup-mswin32/iupole.lib +0 -0
  367. data/ext/iup-mswin32/pdflib.lib +0 -0
  368. data/ext/iup.c +6 -37
  369. data/ext/{rb_cd.h → rb_cd.c} +300 -302
  370. data/ext/rb_iup.c +2485 -0
  371. data/ext/rb_iup.h +400 -2475
  372. data/ext/{rb_iup_pplot.h → rb_iup_pplot.c} +21 -22
  373. data/ext/{rb_iupcb.h → rb_iupcb.c} +2 -3
  374. data/ext/{rb_iupcells.h → rb_iupcells.c} +5 -5
  375. data/ext/{rb_iupcolorbar.h → rb_iupcolorbar.c} +2 -3
  376. data/ext/{rb_iupcontrols.h → rb_iupcontrols.c} +1 -1
  377. data/ext/{rb_iupdial.h → rb_iupdial.c} +3 -4
  378. data/ext/{rb_iupgauge.h → rb_iupgauge.c} +2 -3
  379. data/ext/{rb_iupgc.h → rb_iupgc.c} +1 -1
  380. data/ext/{rb_iupgetparam.h → rb_iupgetparam.c} +12 -10
  381. data/ext/{rb_iupgl.h → rb_iupgl.c} +10 -10
  382. data/ext/{rb_iupim.h → rb_iupim.c} +6 -6
  383. data/ext/{rb_iupmatrix.h → rb_iupmatrix.c} +15 -16
  384. data/ext/{rb_iupole.h → rb_iupole.c} +4 -4
  385. data/ext/{rb_iupsbox.h → rb_iupsbox.c} +3 -3
  386. data/ext/{rb_iupspin.h → rb_iupspin.c} +4 -5
  387. data/ext/{rb_iuptabs.h → rb_iuptabs.c} +5 -6
  388. data/ext/{rb_iuptree.h → rb_iuptree.c} +20 -21
  389. data/ext/{rb_iupval.h → rb_iupval.c} +3 -4
  390. data/ruby-iup.gemspec +26 -0
  391. data/test/test_ruby_iup.rb +25 -0
  392. metadata +395 -270
  393. data/ext/iup-linux/include/lauxlib.h +0 -174
  394. data/ext/iup-linux/include/lua.h +0 -388
  395. data/ext/iup-linux/include/lua.hpp +0 -9
  396. data/ext/iup-linux/include/luaconf.h +0 -763
  397. data/ext/iup-linux/include/lualib.h +0 -53
  398. data/ext/iup-linux/libcd.so +0 -0
  399. data/ext/iup-linux/libcdcontextplus.so +0 -0
  400. data/ext/iup-linux/libcdpdf.so +0 -0
  401. data/ext/iup-linux/libfreetype.so +0 -0
  402. data/ext/iup-linux/libim.so +0 -0
  403. data/ext/iup-linux/libim_fftw.so +0 -0
  404. data/ext/iup-linux/libim_jp2.so +0 -0
  405. data/ext/iup-linux/libim_process.so +0 -0
  406. data/ext/iup-linux/libiup.so +0 -0
  407. data/ext/iup-linux/libiup_pplot.so +0 -0
  408. data/ext/iup-linux/libiupcd.so +0 -0
  409. data/ext/iup-linux/libiupcontrols.so +0 -0
  410. data/ext/iup-linux/libiupgl.so +0 -0
  411. data/ext/iup-linux/libiupim.so +0 -0
  412. data/ext/iup-linux/libiupimglib.so +0 -0
  413. data/ext/iup-linux/libiupmot.so +0 -0
  414. data/ext/iup-linux/libpdflib.so +0 -0
  415. data/ext/iup-win32/cd.dll +0 -0
  416. data/ext/iup-win32/cd.lib +0 -0
  417. data/ext/iup-win32/cdcontextplus.dll +0 -0
  418. data/ext/iup-win32/cdcontextplus.lib +0 -0
  419. data/ext/iup-win32/cdpdf.dll +0 -0
  420. data/ext/iup-win32/cdpdf.lib +0 -0
  421. data/ext/iup-win32/freetype6.dll +0 -0
  422. data/ext/iup-win32/freetype6.lib +0 -0
  423. data/ext/iup-win32/im.dll +0 -0
  424. data/ext/iup-win32/im.lib +0 -0
  425. data/ext/iup-win32/im_avi.dll +0 -0
  426. data/ext/iup-win32/im_avi.lib +0 -0
  427. data/ext/iup-win32/im_capture.dll +0 -0
  428. data/ext/iup-win32/im_capture.lib +0 -0
  429. data/ext/iup-win32/im_ecw.dll +0 -0
  430. data/ext/iup-win32/im_fftw.dll +0 -0
  431. data/ext/iup-win32/im_fftw.lib +0 -0
  432. data/ext/iup-win32/im_jp2.dll +0 -0
  433. data/ext/iup-win32/im_jp2.lib +0 -0
  434. data/ext/iup-win32/im_process.dll +0 -0
  435. data/ext/iup-win32/im_process.lib +0 -0
  436. data/ext/iup-win32/im_wmv.dll +0 -0
  437. data/ext/iup-win32/im_wmv.lib +0 -0
  438. data/ext/iup-win32/imlua_capture51.dll +0 -0
  439. data/ext/iup-win32/imlua_capture51.lib +0 -0
  440. data/ext/iup-win32/imlua_wmv51.dll +0 -0
  441. data/ext/iup-win32/imlua_wmv51.lib +0 -0
  442. data/ext/iup-win32/include/iupcb.h +0 -25
  443. data/ext/iup-win32/include/iupcells.h +0 -130
  444. data/ext/iup-win32/include/iupcolorbar.h +0 -126
  445. data/ext/iup-win32/include/iupcontrols.h +0 -36
  446. data/ext/iup-win32/include/iupdial.h +0 -63
  447. data/ext/iup-win32/include/iupgauge.h +0 -57
  448. data/ext/iup-win32/include/iupgetparam.h +0 -27
  449. data/ext/iup-win32/include/iupmatrix.h +0 -63
  450. data/ext/iup-win32/include/iupspin.h +0 -21
  451. data/ext/iup-win32/include/iuptabs.h +0 -75
  452. data/ext/iup-win32/include/iuptree.h +0 -93
  453. data/ext/iup-win32/include/iupval.h +0 -46
  454. data/ext/iup-win32/iup.dll +0 -0
  455. data/ext/iup-win32/iup.lib +0 -0
  456. data/ext/iup-win32/iup_pplot.dll +0 -0
  457. data/ext/iup-win32/iup_pplot.lib +0 -0
  458. data/ext/iup-win32/iupcd.dll +0 -0
  459. data/ext/iup-win32/iupcd.lib +0 -0
  460. data/ext/iup-win32/iupcontrols.dll +0 -0
  461. data/ext/iup-win32/iupcontrols.lib +0 -0
  462. data/ext/iup-win32/iupgl.dll +0 -0
  463. data/ext/iup-win32/iupgl.lib +0 -0
  464. data/ext/iup-win32/iupgtk.dll +0 -0
  465. data/ext/iup-win32/iupgtk.lib +0 -0
  466. data/ext/iup-win32/iupim.dll +0 -0
  467. data/ext/iup-win32/iupim.lib +0 -0
  468. data/ext/iup-win32/iupimglib.lib +0 -0
  469. data/ext/iup-win32/iupole.dll +0 -0
  470. data/ext/iup-win32/iupole.lib +0 -0
  471. data/ext/iup-win32/iupstub.lib +0 -0
  472. data/ext/iup-win32/pdflib.dll +0 -0
  473. data/ext/iup-win32/pdflib.lib +0 -0
  474. data/ext/mkrf_conf.rb +0 -72
  475. data/ext/rb_iupcompat.h +0 -237
  476. data/ext/rb_iupdef.h +0 -3
  477. data/ext/rb_iupmask.h +0 -189
  478. data/lib/README +0 -1
@@ -1,73 +1,73 @@
1
- /** \file
2
- * \brief C++ Wrapper for File Access
3
- *
4
- * See Copyright Notice in im_lib.h
5
- */
6
-
7
- #ifndef __IM_PLUS_H
8
- #define __IM_PLUS_H
9
-
10
-
11
- /** \brief C++ Wrapper for the Image File Structure
12
- *
13
- * \par
14
- * Usage is just like the C API. Open and New are replaced by equivalent constructors. \n
15
- * Close is replaced by the destructor. Error checking is done by the Error() member. \n
16
- * Open and New errors are cheked using the Failed() member.
17
- * \ingroup file */
18
- class imImageFile
19
- {
20
- imFile* ifile;
21
- int error;
22
-
23
- imImageFile() {};
24
-
25
- public:
26
-
27
- imImageFile(const char* file_name)
28
- { this->ifile = imFileOpen(file_name, &this->error); }
29
-
30
- imImageFile(const char* file_name, const char* format)
31
- { this->ifile = imFileNew(file_name, format, &this->error); }
32
-
33
- ~imImageFile()
34
- { if (this->ifile) imFileClose(this->ifile); }
35
-
36
- int Failed()
37
- { return this->ifile == 0; }
38
-
39
- int Error()
40
- { return this->error; }
41
-
42
- void SetAttribute(const char* attrib, int data_type, int count, const void* data)
43
- { imFileSetAttribute(this->ifile, attrib, data_type, count, data); }
44
-
45
- const void* GetAttribute(const char* attrib, int *data_type, int *count)
46
- { return imFileGetAttribute(this->ifile, attrib, data_type, count); }
47
-
48
- void GetInfo(char* format, char* compression, int *image_count)
49
- { imFileGetInfo(this->ifile, format, compression, image_count); }
50
-
51
- void ReadImageInfo(int index, int *width, int *height, int *color_mode, int *data_type)
52
- { this->error = imFileReadImageInfo(this->ifile, index, width, height, color_mode, data_type); }
53
-
54
- void GetPalette(long* palette, int *palette_count)
55
- { imFileGetPalette(this->ifile, palette, palette_count); }
56
-
57
- void ReadImageData(void* data, int convert2bitmap, int color_mode_flags)
58
- { this->error = imFileReadImageData(this->ifile, data, convert2bitmap, color_mode_flags); }
59
-
60
- void SetInfo(const char* compression)
61
- { imFileSetInfo(this->ifile, compression); }
62
-
63
- void SetPalette(long* palette, int palette_count)
64
- { imFileSetPalette(this->ifile, palette, palette_count); }
65
-
66
- void WriteImageInfo(int width, int height, int color_mode, int data_type)
67
- { this->error = imFileWriteImageInfo(this->ifile, width, height, color_mode, data_type); }
68
-
69
- void WriteImageData(void* data)
70
- { this->error = imFileWriteImageData(this->ifile, data); }
71
- };
72
-
73
- #endif
1
+ /** \file
2
+ * \brief C++ Wrapper for File Access
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_PLUS_H
8
+ #define __IM_PLUS_H
9
+
10
+
11
+ /** \brief C++ Wrapper for the Image File Structure
12
+ *
13
+ * \par
14
+ * Usage is just like the C API. Open and New are replaced by equivalent constructors. \n
15
+ * Close is replaced by the destructor. Error checking is done by the Error() member. \n
16
+ * Open and New errors are cheked using the Failed() member.
17
+ * \ingroup file */
18
+ class imImageFile
19
+ {
20
+ imFile* ifile;
21
+ int error;
22
+
23
+ imImageFile() {};
24
+
25
+ public:
26
+
27
+ imImageFile(const char* file_name)
28
+ { this->ifile = imFileOpen(file_name, &this->error); }
29
+
30
+ imImageFile(const char* file_name, const char* format)
31
+ { this->ifile = imFileNew(file_name, format, &this->error); }
32
+
33
+ ~imImageFile()
34
+ { if (this->ifile) imFileClose(this->ifile); }
35
+
36
+ int Failed()
37
+ { return this->ifile == 0; }
38
+
39
+ int Error()
40
+ { return this->error; }
41
+
42
+ void SetAttribute(const char* attrib, int data_type, int count, const void* data)
43
+ { imFileSetAttribute(this->ifile, attrib, data_type, count, data); }
44
+
45
+ const void* GetAttribute(const char* attrib, int *data_type, int *count)
46
+ { return imFileGetAttribute(this->ifile, attrib, data_type, count); }
47
+
48
+ void GetInfo(char* format, char* compression, int *image_count)
49
+ { imFileGetInfo(this->ifile, format, compression, image_count); }
50
+
51
+ void ReadImageInfo(int index, int *width, int *height, int *color_mode, int *data_type)
52
+ { this->error = imFileReadImageInfo(this->ifile, index, width, height, color_mode, data_type); }
53
+
54
+ void GetPalette(long* palette, int *palette_count)
55
+ { imFileGetPalette(this->ifile, palette, palette_count); }
56
+
57
+ void ReadImageData(void* data, int convert2bitmap, int color_mode_flags)
58
+ { this->error = imFileReadImageData(this->ifile, data, convert2bitmap, color_mode_flags); }
59
+
60
+ void SetInfo(const char* compression)
61
+ { imFileSetInfo(this->ifile, compression); }
62
+
63
+ void SetPalette(long* palette, int palette_count)
64
+ { imFileSetPalette(this->ifile, palette, palette_count); }
65
+
66
+ void WriteImageInfo(int width, int height, int color_mode, int data_type)
67
+ { this->error = imFileWriteImageInfo(this->ifile, width, height, color_mode, data_type); }
68
+
69
+ void WriteImageData(void* data)
70
+ { this->error = imFileWriteImageData(this->ifile, data); }
71
+ };
72
+
73
+ #endif
@@ -1,35 +1,36 @@
1
- /** \file
2
- * \brief Image Processing
3
- *
4
- * See Copyright Notice in im_lib.h
5
- */
6
-
7
- #ifndef __IM_PROCESS_H
8
- #define __IM_PROCESS_H
9
-
10
- #include "im_process_pon.h"
11
- #include "im_process_loc.h"
12
- #include "im_process_glo.h"
13
- #include "im_process_ana.h"
14
-
15
- #if defined(__cplusplus)
16
- extern "C" {
17
- #endif
18
-
19
-
20
- /** \defgroup process Image Processing
21
- * \par
22
- * Several image processing functions based on the \ref imImage structure.
23
- * \par
24
- * You must link the application with "im_process.lib/.a/.so". \n
25
- * Some complex operations use the \ref counter.\n
26
- * There is no check on the input/output image properties,
27
- * check each function documentation before using it.
28
- */
29
-
30
-
31
- #if defined(__cplusplus)
32
- }
33
- #endif
34
-
35
- #endif
1
+ /** \file
2
+ * \brief Image Processing
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_PROCESS_H
8
+ #define __IM_PROCESS_H
9
+
10
+ #include "im_process_pon.h"
11
+ #include "im_process_loc.h"
12
+ #include "im_process_glo.h"
13
+ #include "im_process_ana.h"
14
+
15
+ #if defined(__cplusplus)
16
+ extern "C" {
17
+ #endif
18
+
19
+
20
+ /** \defgroup process Image Processing
21
+ * \par
22
+ * Several image processing functions based on the \ref imImage structure.
23
+ * \par
24
+ * You must link the application with "im_process.lib/.a/.so".
25
+ * In Lua call require"imlua_process". \n
26
+ * Some complex operations use the \ref counter.\n
27
+ * There is no check on the input/output image properties,
28
+ * check each function documentation before using it.
29
+ */
30
+
31
+
32
+ #if defined(__cplusplus)
33
+ }
34
+ #endif
35
+
36
+ #endif
@@ -1,221 +1,222 @@
1
- /** \file
2
- * \brief Image Statistics and Analysis
3
- *
4
- * See Copyright Notice in im_lib.h
5
- */
6
-
7
- #ifndef __IM_PROC_ANA_H
8
- #define __IM_PROC_ANA_H
9
-
10
- #include "im_image.h"
11
-
12
- #if defined(__cplusplus)
13
- extern "C" {
14
- #endif
15
-
16
-
17
-
18
- /** \defgroup stats Image Statistics Calculations
19
- * \par
20
- * Operations to calculate some statistics over images.
21
- * \par
22
- * See \ref im_process_ana.h
23
- * \ingroup process */
24
-
25
- /** Calculates the RMS error between two images (Root Mean Square Error).
26
- *
27
- * \verbatim im.CalcRMSError(image1: imImage, image2: imImage) -> rms: number [in Lua 5] \endverbatim
28
- * \ingroup stats */
29
- float imCalcRMSError(const imImage* image1, const imImage* image2);
30
-
31
- /** Calculates the SNR of an image and its noise (Signal Noise Ratio).
32
- *
33
- * \verbatim im.CalcSNR(src_image: imImage, noise_image: imImage) -> snr: number [in Lua 5] \endverbatim
34
- * \ingroup stats */
35
- float imCalcSNR(const imImage* src_image, const imImage* noise_image);
36
-
37
- /** Count the number of different colors in an image. \n
38
- * Image must be IM_BYTE, but all color spaces except IM_CMYK.
39
- *
40
- * \verbatim im.CalcCountColors(image: imImage) -> count: number [in Lua 5] \endverbatim
41
- * \ingroup stats */
42
- unsigned long imCalcCountColors(const imImage* image);
43
-
44
- /** Calculates the histogram of a IM_BYTE data. \n
45
- * Histogram is always 256 positions long. \n
46
- * When cumulative is different from zero it calculates the cumulative histogram.
47
- *
48
- * \verbatim im.CalcHistogram(image: imImage, plane: number, cumulative: number) -> histo: table of numbers [in Lua 5] \endverbatim
49
- * Where plane is the depth plane to calculate the histogram. \n
50
- * The returned table is zero indexed. image can be IM_USHORT or IM_BYTE.
51
- * \ingroup stats */
52
- void imCalcHistogram(const unsigned char* data, int count, unsigned long* histo, int cumulative);
53
-
54
- /** Calculates the histogram of a IM_USHORT data. \n
55
- * Histogram is always 65535 positions long. \n
56
- * When cumulative is different from zero it calculates the cumulative histogram. \n
57
- * Use \ref imCalcHistogram in Lua.
58
- * \ingroup stats */
59
- void imCalcUShortHistogram(const unsigned short* data, int count, unsigned long* histo, int cumulative);
60
-
61
- /** Calculates the gray histogram of an image. \n
62
- * Image must be IM_BYTE/(IM_RGB, IM_GRAY, IM_BINARY or IM_MAP). \n
63
- * If the image is IM_RGB then the histogram of the luma component is calculated. \n
64
- * Histogram is always 256 positions long. \n
65
- * When cumulative is different from zero it calculates the cumulative histogram.
66
- *
67
- * \verbatim im.CalcGrayHistogram(image: imImage, cumulative: number) -> histo: table of numbers [in Lua 5] \endverbatim
68
- * \ingroup stats */
69
- void imCalcGrayHistogram(const imImage* image, unsigned long* histo, int cumulative);
70
-
71
- /** Numerical Statistics Structure
72
- * \ingroup stats */
73
- typedef struct _imStats
74
- {
75
- float max; /**< Maximum value */
76
- float min; /**< Minimum value */
77
- unsigned long positive; /**< Number of Positive Values */
78
- unsigned long negative; /**< Number of Negative Values */
79
- unsigned long zeros; /**< Number of Zeros */
80
- float mean; /**< Mean */
81
- float stddev; /**< Standard Deviation */
82
- } imStats;
83
-
84
- /** Calculates the statistics about the image data. \n
85
- * There is one stats for each depth plane. For ex: stats[0]=red stats, stats[0]=green stats, ... \n
86
- * Supports all data types except IM_CFLOAT. \n
87
- *
88
- * \verbatim im.CalcImageStatistics(image: imImage) -> stats: table [in Lua 5] \endverbatim
89
- * Table contains the following fields: max, min, positive, negative, zeros, mean, stddev.
90
- * The same as the \ref imStats structure.
91
- * \ingroup stats */
92
- void imCalcImageStatistics(const imImage* image, imStats* stats);
93
-
94
- /** Calculates the statistics about the image histogram data.\n
95
- * There is one stats for each depth plane. For ex: stats[0]=red stats, stats[0]=green stats, ... \n
96
- * Only IM_BYTE images are supported.
97
- *
98
- * \verbatim im.CalcHistogramStatistics(image: imImage) -> stats: table [in Lua 5] \endverbatim
99
- * \ingroup stats */
100
- void imCalcHistogramStatistics(const imImage* image, imStats* stats);
101
-
102
- /** Calculates some extra statistics about the image histogram data.\n
103
- * There is one stats for each depth plane. \n
104
- * Only IM_BYTE images are supported. \n
105
- * mode will be -1 if more than one max is found.
106
- *
107
- * \verbatim im.CalcHistoImageStatistics(image: imImage) -> median: number, mode: number [in Lua 5] \endverbatim
108
- * \ingroup stats */
109
- void imCalcHistoImageStatistics(const imImage* image, int* median, int* mode);
110
-
111
-
112
-
113
- /** \defgroup analyze Image Analysis
114
- * \par
115
- * See \ref im_process_ana.h
116
- * \ingroup process */
117
-
118
- /** Find white regions in binary image. \n
119
- * Result is IM_GRAY/IM_USHORT type. Regions can be 4 connected or 8 connected. \n
120
- * Returns the number of regions found. Background is marked as 0. \n
121
- * Regions touching the border are considered only if touch_border=1.
122
- *
123
- * \verbatim im.AnalyzeFindRegions(src_image: imImage, dst_image: imImage, connect: number, touch_border: number) -> count: number [in Lua 5] \endverbatim
124
- * \verbatim im.AnalyzeFindRegionsNew(image: imImage, connect: number, touch_border: number) -> count: number, new_image: imImage [in Lua 5] \endverbatim
125
- * \ingroup analyze */
126
- int imAnalyzeFindRegions(const imImage* src_image, imImage* dst_image, int connect, int touch_border);
127
-
128
- /** Measure the actual area of all regions. Holes are not included. \n
129
- * This is the number of pixels of each region. \n
130
- * Source image is IM_GRAY/IM_USHORT type (the result of \ref imAnalyzeFindRegions). \n
131
- * area has size the number of regions.
132
- *
133
- * \verbatim im.AnalyzeMeasureArea(image: imImage, [region_count: number]) -> area: table of numbers [in Lua 5] \endverbatim
134
- * The returned table is zero indexed.
135
- * \ingroup analyze */
136
- void imAnalyzeMeasureArea(const imImage* image, int* area, int region_count);
137
-
138
- /** Measure the polygonal area limited by the perimeter line of all regions. Holes are not included. \n
139
- * Notice that some regions may have polygonal area zero. \n
140
- * Source image is IM_GRAY/IM_USHORT type (the result of \ref imAnalyzeFindRegions). \n
141
- * perimarea has size the number of regions.
142
- *
143
- * \verbatim im.AnalyzeMeasurePerimArea(image: imImage, [region_count: number]) -> perimarea: table of numbers [in Lua 5] \endverbatim
144
- * The returned table is zero indexed.
145
- * \ingroup analyze */
146
- void imAnalyzeMeasurePerimArea(const imImage* image, float* perimarea);
147
-
148
- /** Calculate the centroid position of all regions. Holes are not included. \n
149
- * Source image is IM_GRAY/IM_USHORT type (the result of \ref imAnalyzeFindRegions). \n
150
- * area, cx and cy have size the number of regions. If area is NULL will be internally calculated.
151
- *
152
- * \verbatim im.AnalyzeMeasureCentroid(image: imImage, [area: table of numbers], [region_count: number]) -> cx: table of numbers, cy: table of numbers [in Lua 5] \endverbatim
153
- * The returned tables are zero indexed.
154
- * \ingroup analyze */
155
- void imAnalyzeMeasureCentroid(const imImage* image, const int* area, int region_count, float* cx, float* cy);
156
-
157
- /** Calculate the principal major axis slope of all regions. \n
158
- * Source image is IM_GRAY/IM_USHORT type (the result of \ref imAnalyzeFindRegions). \n
159
- * data has size the number of regions. If area or centroid are NULL will be internally calculated. \n
160
- * Principal (major and minor) axes are defined to be those axes that pass through the
161
- * centroid, about which the moment of inertia of the region is, respectively maximal or minimal.
162
- *
163
- * \verbatim im.AnalyzeMeasurePrincipalAxis(image: imImage, [area: table of numbers], [cx: table of numbers], [cy: table of numbers], [region_count: number])
164
- -> major_slope: table of numbers, major_length: table of numbers, minor_slope: table of numbers, minor_length: table of numbers [in Lua 5] \endverbatim
165
- * The returned tables are zero indexed.
166
- * \ingroup analyze */
167
- void imAnalyzeMeasurePrincipalAxis(const imImage* image, const int* area, const float* cx, const float* cy,
168
- const int region_count, float* major_slope, float* major_length,
169
- float* minor_slope, float* minor_length);
170
-
171
- /** Measure the number and area of holes of all regions. \n
172
- * Source image is IM_USHORT type (the result of \ref imAnalyzeFindRegions). \n
173
- * area and perim has size the number of regions, if some is NULL it will be not calculated.
174
- *
175
- * \verbatim im.AnalyzeMeasureHoles(image: imImage, connect: number, [region_count: number]) -> holes_count: number, area: table of numbers, perim: table of numbers [in Lua 5] \endverbatim
176
- * The returned tables are zero indexed.
177
- * \ingroup analyze */
178
- void imAnalyzeMeasureHoles(const imImage* image, int connect, int *holes_count, int* area, float* perim);
179
-
180
- /** Measure the total perimeter of all regions (external and internal). \n
181
- * Source image is IM_GRAY/IM_USHORT type (the result of imAnalyzeFindRegions). \n
182
- * It uses a half-pixel inter distance for 8 neighboors in a perimeter of a 4 connected region. \n
183
- * This function can also be used to measure line lenght. \n
184
- * perim has size the number of regions.
185
- *
186
- * \verbatim im.AnalyzeMeasurePerimeter(image: imImage) -> perim: table of numbers [in Lua 5] \endverbatim
187
- * \ingroup analyze */
188
- void imAnalyzeMeasurePerimeter(const imImage* image, float* perim, int region_count);
189
-
190
- /** Isolates the perimeter line of gray integer images. Background is defined as being black (0). \n
191
- * It just checks if at least one of the 4 connected neighboors is non zero. Image borders are extended with zeros.
192
- *
193
- * \verbatim im.ProcessPerimeterLine(src_image: imImage, dst_image: imImage) [in Lua 5] \endverbatim
194
- * \verbatim im.ProcessPerimeterLineNew(image: imImage) -> new_image: imImage [in Lua 5] \endverbatim
195
- * \ingroup analyze */
196
- void imProcessPerimeterLine(const imImage* src_image, imImage* dst_image);
197
-
198
- /** Eliminates regions that have size outside the given interval. \n
199
- * Source and destiny are a binary images. Regions can be 4 connected or 8 connected. \n
200
- * Can be done in-place. end_size can be zero to ignore big objects.
201
- *
202
- * \verbatim im.ProcessPrune(src_image: imImage, dst_image: imImage, connect: number, start_size: number, end_size: number) [in Lua 5] \endverbatim
203
- * \verbatim im.ProcessPruneNew(image: imImage, connect: number, start_size: number, end_size: number) -> new_image: imImage [in Lua 5] \endverbatim
204
- * \ingroup analyze */
205
- void imProcessPrune(const imImage* src_image, imImage* dst_image, int connect, int start_size, int end_size);
206
-
207
- /** Fill holes inside white regions. \n
208
- * Source and destiny are a binary images. Regions can be 4 connected or 8 connected. \n
209
- * Can be done in-place.
210
- *
211
- * \verbatim im.ProcessFillHoles(src_image: imImage, dst_image: imImage, connect: number) [in Lua 5] \endverbatim
212
- * \verbatim im.ProcessFillHolesNew(image: imImage, connect: number) -> new_image: imImage [in Lua 5] \endverbatim
213
- * \ingroup analyze */
214
- void imProcessFillHoles(const imImage* src_image, imImage* dst_image, int connect);
215
-
216
-
217
- #if defined(__cplusplus)
218
- }
219
- #endif
220
-
221
- #endif
1
+ /** \file
2
+ * \brief Image Statistics and Analysis
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_PROC_ANA_H
8
+ #define __IM_PROC_ANA_H
9
+
10
+ #include "im_image.h"
11
+
12
+ #if defined(__cplusplus)
13
+ extern "C" {
14
+ #endif
15
+
16
+
17
+
18
+ /** \defgroup stats Image Statistics Calculations
19
+ * \par
20
+ * Operations to calculate some statistics over images.
21
+ * \par
22
+ * See \ref im_process_ana.h
23
+ * \ingroup process */
24
+
25
+ /** Calculates the RMS error between two images (Root Mean Square Error).
26
+ *
27
+ * \verbatim im.CalcRMSError(image1: imImage, image2: imImage) -> rms: number [in Lua 5] \endverbatim
28
+ * \ingroup stats */
29
+ float imCalcRMSError(const imImage* image1, const imImage* image2);
30
+
31
+ /** Calculates the SNR of an image and its noise (Signal Noise Ratio).
32
+ *
33
+ * \verbatim im.CalcSNR(src_image: imImage, noise_image: imImage) -> snr: number [in Lua 5] \endverbatim
34
+ * \ingroup stats */
35
+ float imCalcSNR(const imImage* src_image, const imImage* noise_image);
36
+
37
+ /** Count the number of different colors in an image. \n
38
+ * Image must be IM_BYTE, but all color spaces except IM_CMYK.
39
+ *
40
+ * \verbatim im.CalcCountColors(image: imImage) -> count: number [in Lua 5] \endverbatim
41
+ * \ingroup stats */
42
+ unsigned long imCalcCountColors(const imImage* image);
43
+
44
+ /** Calculates the histogram of a IM_BYTE data. \n
45
+ * Histogram is always 256 positions long. \n
46
+ * When cumulative is different from zero it calculates the cumulative histogram.
47
+ *
48
+ * \verbatim im.CalcHistogram(image: imImage, plane: number, cumulative: boolean) -> histo: table of numbers [in Lua 5] \endverbatim
49
+ * Where plane is the depth plane to calculate the histogram. \n
50
+ * The returned table is zero indexed. image can be IM_USHORT or IM_BYTE.
51
+ * \ingroup stats */
52
+ void imCalcHistogram(const unsigned char* data, int count, unsigned long* histo, int cumulative);
53
+
54
+ /** Calculates the histogram of a IM_USHORT data. \n
55
+ * Histogram is always 65535 positions long. \n
56
+ * When cumulative is different from zero it calculates the cumulative histogram. \n
57
+ * Use \ref imCalcHistogram in Lua.
58
+ * \ingroup stats */
59
+ void imCalcUShortHistogram(const unsigned short* data, int count, unsigned long* histo, int cumulative);
60
+
61
+ /** Calculates the gray histogram of an image. \n
62
+ * Image must be IM_BYTE/(IM_RGB, IM_GRAY, IM_BINARY or IM_MAP). \n
63
+ * If the image is IM_RGB then the histogram of the luma component is calculated. \n
64
+ * Histogram is always 256 positions long. \n
65
+ * When cumulative is different from zero it calculates the cumulative histogram.
66
+ *
67
+ * \verbatim im.CalcGrayHistogram(image: imImage, cumulative: boolean) -> histo: table of numbers [in Lua 5] \endverbatim
68
+ * \ingroup stats */
69
+ void imCalcGrayHistogram(const imImage* image, unsigned long* histo, int cumulative);
70
+
71
+ /** Numerical Statistics Structure
72
+ * \ingroup stats */
73
+ typedef struct _imStats
74
+ {
75
+ float max; /**< Maximum value */
76
+ float min; /**< Minimum value */
77
+ unsigned long positive; /**< Number of Positive Values */
78
+ unsigned long negative; /**< Number of Negative Values */
79
+ unsigned long zeros; /**< Number of Zeros */
80
+ float mean; /**< Mean */
81
+ float stddev; /**< Standard Deviation */
82
+ } imStats;
83
+
84
+ /** Calculates the statistics about the image data. \n
85
+ * There is one stats for each depth plane. For ex: stats[0]=red stats, stats[0]=green stats, ... \n
86
+ * Supports all data types except IM_CFLOAT. \n
87
+ *
88
+ * \verbatim im.CalcImageStatistics(image: imImage) -> stats: table [in Lua 5] \endverbatim
89
+ * Table contains the following fields: max, min, positive, negative, zeros, mean, stddev.
90
+ * The same as the \ref imStats structure.
91
+ * \ingroup stats */
92
+ void imCalcImageStatistics(const imImage* image, imStats* stats);
93
+
94
+ /** Calculates the statistics about the image histogram data.\n
95
+ * There is one stats for each depth plane. For ex: stats[0]=red stats, stats[0]=green stats, ... \n
96
+ * Only IM_BYTE images are supported.
97
+ *
98
+ * \verbatim im.CalcHistogramStatistics(image: imImage) -> stats: table [in Lua 5] \endverbatim
99
+ * \ingroup stats */
100
+ void imCalcHistogramStatistics(const imImage* image, imStats* stats);
101
+
102
+ /** Calculates some extra statistics about the image histogram data.\n
103
+ * There is one stats for each depth plane. \n
104
+ * Only IM_BYTE images are supported. \n
105
+ * mode will be -1 if more than one max is found.
106
+ *
107
+ * \verbatim im.CalcHistoImageStatistics(image: imImage) -> median: number, mode: number [in Lua 5] \endverbatim
108
+ * \ingroup stats */
109
+ void imCalcHistoImageStatistics(const imImage* image, int* median, int* mode);
110
+
111
+
112
+
113
+ /** \defgroup analyze Image Analysis
114
+ * \par
115
+ * See \ref im_process_ana.h
116
+ * \ingroup process */
117
+
118
+ /** Find white regions in binary image. \n
119
+ * Result is IM_GRAY/IM_USHORT type. Regions can be 4 connected or 8 connected. \n
120
+ * Returns the number of regions found. Background is marked as 0. \n
121
+ * Regions touching the border are considered only if touch_border=1.
122
+ *
123
+ * \verbatim im.AnalyzeFindRegions(src_image: imImage, dst_image: imImage, connect: number, touch_border: boolean) -> count: number [in Lua 5] \endverbatim
124
+ * \verbatim im.AnalyzeFindRegionsNew(image: imImage, connect: number, touch_border: boolean) -> count: number, new_image: imImage [in Lua 5] \endverbatim
125
+ * \ingroup analyze */
126
+ int imAnalyzeFindRegions(const imImage* src_image, imImage* dst_image, int connect, int touch_border);
127
+
128
+ /** Measure the actual area of all regions. Holes are not included. \n
129
+ * This is the number of pixels of each region. \n
130
+ * Source image is IM_GRAY/IM_USHORT type (the result of \ref imAnalyzeFindRegions). \n
131
+ * area has size the number of regions.
132
+ *
133
+ * \verbatim im.AnalyzeMeasureArea(image: imImage, [region_count: number]) -> area: table of numbers [in Lua 5] \endverbatim
134
+ * The returned table is zero indexed.
135
+ * \ingroup analyze */
136
+ void imAnalyzeMeasureArea(const imImage* image, int* area, int region_count);
137
+
138
+ /** Measure the polygonal area limited by the perimeter line of all regions. Holes are not included. \n
139
+ * Notice that some regions may have polygonal area zero. \n
140
+ * Source image is IM_GRAY/IM_USHORT type (the result of \ref imAnalyzeFindRegions). \n
141
+ * perimarea has size the number of regions.
142
+ *
143
+ * \verbatim im.AnalyzeMeasurePerimArea(image: imImage, [region_count: number]) -> perimarea: table of numbers [in Lua 5] \endverbatim
144
+ * The returned table is zero indexed.
145
+ * \ingroup analyze */
146
+ void imAnalyzeMeasurePerimArea(const imImage* image, float* perimarea);
147
+
148
+ /** Calculate the centroid position of all regions. Holes are not included. \n
149
+ * Source image is IM_GRAY/IM_USHORT type (the result of \ref imAnalyzeFindRegions). \n
150
+ * area, cx and cy have size the number of regions. If area is NULL will be internally calculated.
151
+ *
152
+ * \verbatim im.AnalyzeMeasureCentroid(image: imImage, [area: table of numbers], [region_count: number]) -> cx: table of numbers, cy: table of numbers [in Lua 5] \endverbatim
153
+ * The returned tables are zero indexed.
154
+ * \ingroup analyze */
155
+ void imAnalyzeMeasureCentroid(const imImage* image, const int* area, int region_count, float* cx, float* cy);
156
+
157
+ /** Calculate the principal major axis slope of all regions. \n
158
+ * Source image is IM_GRAY/IM_USHORT type (the result of \ref imAnalyzeFindRegions). \n
159
+ * data has size the number of regions. If area or centroid are NULL will be internally calculated. \n
160
+ * Principal (major and minor) axes are defined to be those axes that pass through the
161
+ * centroid, about which the moment of inertia of the region is, respectively maximal or minimal.
162
+ *
163
+ * \verbatim im.AnalyzeMeasurePrincipalAxis(image: imImage, [area: table of numbers], [cx: table of numbers], [cy: table of numbers], [region_count: number])
164
+ -> major_slope: table of numbers, major_length: table of numbers, minor_slope: table of numbers, minor_length: table of numbers [in Lua 5] \endverbatim
165
+ * The returned tables are zero indexed.
166
+ * \ingroup analyze */
167
+ void imAnalyzeMeasurePrincipalAxis(const imImage* image, const int* area, const float* cx, const float* cy,
168
+ const int region_count, float* major_slope, float* major_length,
169
+ float* minor_slope, float* minor_length);
170
+
171
+ /** Measure the number and area of holes of all regions. \n
172
+ * Source image is IM_USHORT type (the result of \ref imAnalyzeFindRegions). \n
173
+ * area and perim has size the number of regions, if some is NULL it will be not calculated.
174
+ *
175
+ * \verbatim im.AnalyzeMeasureHoles(image: imImage, connect: number, [region_count: number]) -> holes_count: number, area: table of numbers, perim: table of numbers [in Lua 5] \endverbatim
176
+ * The returned tables are zero indexed.
177
+ * \ingroup analyze */
178
+ void imAnalyzeMeasureHoles(const imImage* image, int connect, int *holes_count, int* area, float* perim);
179
+
180
+ /** Measure the total perimeter of all regions (external and internal). \n
181
+ * Source image is IM_GRAY/IM_USHORT type (the result of imAnalyzeFindRegions). \n
182
+ * It uses a half-pixel inter distance for 8 neighboors in a perimeter of a 4 connected region. \n
183
+ * This function can also be used to measure line lenght. \n
184
+ * perim has size the number of regions.
185
+ *
186
+ * \verbatim im.AnalyzeMeasurePerimeter(image: imImage) -> perim: table of numbers [in Lua 5] \endverbatim
187
+ * \ingroup analyze */
188
+ void imAnalyzeMeasurePerimeter(const imImage* image, float* perim, int region_count);
189
+
190
+ /** Isolates the perimeter line of gray integer images. Background is defined as being black (0). \n
191
+ * It just checks if at least one of the 4 connected neighboors is non zero. Image borders are extended with zeros.
192
+ *
193
+ * \verbatim im.ProcessPerimeterLine(src_image: imImage, dst_image: imImage) [in Lua 5] \endverbatim
194
+ * \verbatim im.ProcessPerimeterLineNew(image: imImage) -> new_image: imImage [in Lua 5] \endverbatim
195
+ * \ingroup analyze */
196
+ void imProcessPerimeterLine(const imImage* src_image, imImage* dst_image);
197
+
198
+ /** Eliminates regions that have area size outside or inside the given interval. \n
199
+ * Source and destiny are a binary images. Regions can be 4 connected or 8 connected. \n
200
+ * Can be done in-place. end_size can be zero to indicate no upper limit or an area with width*height size. \n
201
+ * When searching inside the region the limits are inclusive (<= size >=), when searching outside the limits are exclusive (> size <).
202
+ *
203
+ * \verbatim im.ProcessRemoveByArea(src_image: imImage, dst_image: imImage, connect: number, start_size: number, end_size: number, inside: boolean) [in Lua 5] \endverbatim
204
+ * \verbatim im.ProcessRemoveByAreaNew(image: imImage, connect: number, start_size: number, end_size: number, inside: boolean) -> new_image: imImage [in Lua 5] \endverbatim
205
+ * \ingroup analyze */
206
+ void imProcessRemoveByArea(const imImage* src_image, imImage* dst_image, int connect, int start_size, int end_size, int inside);
207
+
208
+ /** Fill holes inside white regions. \n
209
+ * Source and destiny are a binary images. Regions can be 4 connected or 8 connected. \n
210
+ * Can be done in-place.
211
+ *
212
+ * \verbatim im.ProcessFillHoles(src_image: imImage, dst_image: imImage, connect: number) [in Lua 5] \endverbatim
213
+ * \verbatim im.ProcessFillHolesNew(image: imImage, connect: number) -> new_image: imImage [in Lua 5] \endverbatim
214
+ * \ingroup analyze */
215
+ void imProcessFillHoles(const imImage* src_image, imImage* dst_image, int connect);
216
+
217
+
218
+ #if defined(__cplusplus)
219
+ }
220
+ #endif
221
+
222
+ #endif