ruby-iup 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,88 @@
1
+ /** \file
2
+ * \brief Register the AVI Format
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_FORMAT_AVI_H
8
+ #define __IM_FORMAT_AVI_H
9
+
10
+ #if defined(__cplusplus)
11
+ extern "C" {
12
+ #endif
13
+
14
+ /** \defgroup avi AVI - Windows Audio-Video Interleaved RIFF
15
+ * \section Description
16
+ *
17
+ * \par
18
+ * Windows Copyright Microsoft Corporation.
19
+ * \par
20
+ * Access to the AVI format uses Windows AVIFile library. Available in Windows Only. \n
21
+ * When writing a new file you must use an ".avi" extension, or the Windows API will fail. \n
22
+ * You must link the application with "im_avi.lib"
23
+ * and you must call the function \ref imFormatRegisterAVI once
24
+ * to register the format into the IM core library.
25
+ * In Lua call require"imlua_avi". \n
26
+ * Depends also on the VFW library (vfw32.lib).
27
+ * When using the "im_avi.dll" this extra library is not necessary. \n
28
+ * If using Cygwin or MingW must link with "-lvfw32".
29
+ * Old versions of Cygwin and MingW use the "-lvfw_ms32" and "-lvfw_avi32".
30
+ * \par
31
+ * See \ref im_format_avi.h
32
+ *
33
+ * \section Features
34
+ *
35
+ \verbatim
36
+ Data Types: Byte
37
+ Color Spaces: RGB, MAP and Binary (Gray saved as MAP)
38
+ Compressions (installed in Windows XP by default):
39
+ NONE - no compression [default]
40
+ RLE - Microsoft RLE (8bpp only)
41
+ CINEPACK - Cinepak Codec by Radius
42
+ MSVC - Microsoft Video 1 (old)
43
+ M261 - Microsoft H.261 Video Codec
44
+ M263 - Microsoft H.263 Video Codec
45
+ I420 - Intel 4:2:0 Video Codec (same as M263)
46
+ IV32 - Intel Indeo Video Codec 3.2 (old)
47
+ IV41 - Intel Indeo Video Codec 4.5 (old)
48
+ IV50 - Intel Indeo Video 5.1
49
+ IYUV - Intel IYUV Codec
50
+ MPG4 - Microsoft MPEG-4 Video Codec V1 (not MPEG-4 compliant) (old)
51
+ MP42 - Microsoft MPEG-4 Video Codec V2 (not MPEG-4 compliant)
52
+ CUSTOM - (show compression dialog)
53
+ DIVX - DivX 5.0.4 Codec (DivX must be installed)
54
+ (others, must be the 4 charaters of the fourfcc code)
55
+ Can have more than one image.
56
+ Can have an alpha channel (only for RGB)
57
+ Internally the components are always packed.
58
+ Lines arranged from top down to bottom or bottom up to top. But are saved always as bottom up.
59
+ Handle(0) returns NULL. imBinFile is not supported.
60
+ Handle(1) returns PAVIFILE.
61
+ Handle(2) returns PAVISTREAM.
62
+
63
+ Attributes:
64
+ FPS IM_FLOAT (1) (should set when writing, default 15)
65
+ AVIQuality IM_INT (1) [1-10000, default -1] (write only) [unsed if compression=CUSTOM]
66
+ KeyFrameRate IM_INT (1) (write only) [key frame frequency, if 0 not using key frames, default 15, unsed if compression=CUSTOM]
67
+ DataRate IM_INT (1) (write only) [kilobits/second, default 2400, unsed if compression=CUSTOM]
68
+
69
+ Comments:
70
+ Reads only the first video stream. Other streams are ignored.
71
+ All the images have the same size, you must call imFileReadImageInfo/imFileWriteImageInfo
72
+ at least once.
73
+ For codecs comparsion and download go to:
74
+ http://graphics.lcs.mit.edu/~tbuehler/video/codecs/
75
+ http://www.fourcc.org
76
+ \endverbatim
77
+ * \ingroup format */
78
+
79
+ /** Register the AVI Format. \n
80
+ * In Lua, when using require"imlua_avi" this function will be automatically called.
81
+ * \ingroup avi */
82
+ void imFormatRegisterAVI(void);
83
+
84
+ #if defined(__cplusplus)
85
+ }
86
+ #endif
87
+
88
+ #endif
@@ -0,0 +1,93 @@
1
+ /** \file
2
+ * \brief Register the ECW Format
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_FORMAT_ECW_H
8
+ #define __IM_FORMAT_ECW_H
9
+
10
+ #if defined(__cplusplus)
11
+ extern "C" {
12
+ #endif
13
+
14
+ /** \defgroup ecw ECW - ECW JPEG 2000
15
+ * \section Description
16
+ *
17
+ * \par
18
+ * ECW JPEG 2000 Copyright 1998 Earth Resource Mapping Ltd.
19
+ * Two formats are supported with this module. The ECW (Enhanced Compression Wavelet) format and the ISO JPEG 2000 format.
20
+ * \par
21
+ * Access to the ECW format uses the ECW JPEG 2000 SDK version 3.3.
22
+ * Available in Windows, Linux and Solaris Only. But source code is also available. \n
23
+ * You must link the application with "im_ecw.lib"
24
+ * and you must call the function \ref imFormatRegisterECW once
25
+ * to register the format into the IM core library. \n
26
+ * Depends also on the ECW JPEG 2000 SDK libraries (NCSEcw.lib).
27
+ * \par
28
+ * When using other JPEG 2000 libraries the first registered library will be used to guess the file format.
29
+ * Use the extension *.ecw to shortcut to this implementation of the JPEG 2000 format.
30
+ * \par
31
+ * See \ref im_format_ecw.h
32
+ * \par
33
+ * \par
34
+ * http://www.ermapper.com/ecw/ \n
35
+ * The three types of licenses available for the ECW JPEG 2000 SDK are as follows:
36
+ \verbatim
37
+ - ECW JPEG 2000 SDK Free Use License Agreement - This license governs the free use of
38
+ the ECW JPEG 2000 SDK with Unlimited Decompression and Limited Compression (Less
39
+ than 500MB).
40
+ - ECW JPEG 2000 SDK Public Use License Agreement - This license governs the use of the
41
+ ECW SDK with Unlimited Decompression and Unlimited Compression for applications
42
+ licensed under a GNU General Public style license.
43
+ - ECW JPEG 2000 SDK Commercial Use License Agreement - This license governs the use
44
+ of the ECW JPEG 2000 SDK with Unlimited Decompression and Unlimited Compression
45
+ for commercial applications.
46
+ \endverbatim
47
+ *
48
+ * \section Features
49
+ *
50
+ \verbatim
51
+ Data Types: Byte, UShort, Float
52
+ Color Spaces: BINARY, GRAY, RGB, YCBCR
53
+ Compressions:
54
+ ECW - Enhanced Compression Wavelet
55
+ JPEG-2000 - ISO JPEG 2000
56
+ Only one image.
57
+ Can have an alpha channel
58
+ Internally the components are always packed.
59
+ Lines arranged from top down to bottom.
60
+ Handle() returns NCSFileView* when reading, NCSEcwCompressClient* when writing.
61
+
62
+ Attributes:
63
+ CompressionRatio IM_FLOAT (1) [example: Ratio=7 just like 7:1]
64
+ OriginX, OriginY IM_FLOAT (1)
65
+ Rotation IM_FLOAT (1)
66
+ CellIncrementX, CellIncrementY IM_FLOAT (1)
67
+ CellUnits (string)
68
+ Datum (string)
69
+ Projection (string)
70
+ ViewWidth, ViewHeight IM_INT (1) [view zoom]
71
+ ViewXmin, ViewYmin, ViewXmax, ViewYmax IM_INT (1) [view limits]
72
+ MultiBandCount IM_USHORT (1) [Number of bands in a multiband gray image.]
73
+ MultiBandSelect IM_USHORT (1) [Band number to read one band of a multiband gray image. Must be set before reading image info.]
74
+
75
+ Comments:
76
+ Only read support is implemented.
77
+ To read a region of the image you must set the View* attributes before reading the image data.
78
+ After reading a partial image the width and height returned in ReadImageInfo is the view size.
79
+ The view limits define the region to be read.
80
+ The view size is the actual size of the image, so the result can be zoomed.
81
+ \endverbatim
82
+ * \ingroup format */
83
+
84
+ /** Register the ECW Format
85
+ * \ingroup ecw */
86
+ void imFormatRegisterECW(void);
87
+
88
+
89
+ #if defined(__cplusplus)
90
+ }
91
+ #endif
92
+
93
+ #endif
@@ -0,0 +1,79 @@
1
+ /** \file
2
+ * \brief Register the JP2 Format
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_FORMAT_JP2_H
8
+ #define __IM_FORMAT_JP2_H
9
+
10
+ #if defined(__cplusplus)
11
+ extern "C" {
12
+ #endif
13
+
14
+
15
+ /** \defgroup jp2 JP2 - JPEG-2000 JP2 File Format
16
+ * \section Description
17
+ *
18
+ * \par
19
+ * ISO/IEC 15444 (2000, 2003)\n
20
+ * http://www.jpeg.org/
21
+ * \par
22
+ * You must link the application with "im_jp2.lib"
23
+ * and you must call the function \ref imFormatRegisterJP2 once
24
+ * to register the format into the IM core library.
25
+ * In Lua call require"imlua_jp2". \n
26
+ * \par
27
+ * Access to the JPEG2000 file format uses libJasper version 1.900.1 \n
28
+ * http://www.ece.uvic.ca/~mdadams/jasper \n
29
+ * Copyright (c) 2001-2006 Michael David Adams. \n
30
+ * and GeoJasPer 1.4.0 \n
31
+ * Copyright (c) 2003-2007 Dmitry V. Fedorov. \n
32
+ * http://www.dimin.net/software/geojasper/ \n
33
+ *
34
+ * \par
35
+ * See \ref im_format_jp2.h
36
+ *
37
+ * \section Features
38
+ *
39
+ \verbatim
40
+ Data Types: Byte and UShort
41
+ Color Spaces: Binary, Gray, RGB, YCbCr, Lab and XYZ
42
+ Compressions:
43
+ JPEG-2000 - ISO JPEG 2000 [default]
44
+ Only one image.
45
+ Can have an alpha channel.
46
+ Internally the components are always unpacked.
47
+ Internally the lines are arranged from top down to bottom.
48
+ Handle(1) returns jas_image_t*
49
+ Handle(2) returns jas_stream_t*
50
+
51
+ Attributes:
52
+ CompressionRatio IM_FLOAT (1) [write only, example: Ratio=7 just like 7:1]
53
+ GeoTIFFBox IM_BYTE (n)
54
+ XMLPacket IM_BYTE (n)
55
+
56
+ Comments:
57
+ We read code stream syntax and JP2, but we write always as JP2.
58
+ Used definitions EXCLUDE_JPG_SUPPORT,EXCLUDE_MIF_SUPPORT,
59
+ EXCLUDE_PNM_SUPPORT,EXCLUDE_RAS_SUPPORT,
60
+ EXCLUDE_BMP_SUPPORT,EXCLUDE_PGX_SUPPORT
61
+ Changed jas_config.h to match our needs.
62
+ New file jas_binfile.c
63
+ Changed base/jas_stream.c to export jas_stream_create and jas_stream_initbuf.
64
+ Changed jp2/jp2_dec.c and jpc/jpc_cs.c to remove "uint" and "ulong" usage.
65
+ The counter is restarted many times, because it has many phases.
66
+ \endverbatim
67
+ * \ingroup format */
68
+
69
+ /** Register the JP2 Format. \n
70
+ * In Lua, when using require"imlua_jp2" this function will be automatically called.
71
+ * \ingroup jp2 */
72
+ void imFormatRegisterJP2(void);
73
+
74
+
75
+ #if defined(__cplusplus)
76
+ }
77
+ #endif
78
+
79
+ #endif
@@ -0,0 +1,74 @@
1
+ /** \file
2
+ * \brief Initialize the RAW Format Driver
3
+ * Header for internal use only.
4
+ *
5
+ * See Copyright Notice in im_lib.h
6
+ */
7
+
8
+ #ifndef __IM_FORMAT_RAW_H
9
+ #define __IM_FORMAT_RAW_H
10
+
11
+ #if defined(__cplusplus)
12
+ extern "C" {
13
+ #endif
14
+
15
+ /** \defgroup raw RAW - RAW File
16
+ *
17
+ * \par
18
+ * The file must be open/created with the functions \ref imFileOpenRaw and \ref imFileNewRaw.
19
+ *
20
+ * \section Description
21
+ *
22
+ * \par
23
+ * Internal Implementation.
24
+ * \par
25
+ * Supports RAW binary images. This is an unstructured and uncompressed binary data.
26
+ * It is NOT a Camera RAW file generated in many professional digital cameras. \n
27
+ * You must know image parameters a priori and must set the IM_INT attributes "Width", "Height", "ColorMode", "DataType"
28
+ * before the imFileReadImageInfo/imFileWriteImageInfo functions.
29
+ * \par
30
+ * The data must be in binary form, but can start in an arbitrary offset from the begining of the file, use attribute "StartOffset".
31
+ * The default is at 0 offset.
32
+ * \par
33
+ * Integer sign and double precision can be converted using attribute "SwitchType". \n
34
+ * The conversions will be BYTE<->CHAR, USHORT<->SHORT, INT<->UINT, FLOAT<->DOUBLE.
35
+ * \par
36
+ * Byte Order can be Little Endian (Intel=1) or Big Endian (Motorola=0), use the attribute "ByteOrder", the default is the current CPU.
37
+ * \par
38
+ * The lines can be aligned to a BYTE (1), WORD (2) or DWORD (4) boundaries, ue attribute "Padding" with the respective value.
39
+ * \par
40
+ * If the compression is ASCII the data is stored in textual format, instead of binary.
41
+ * In this case SwitchType and ByteOrder are ignored, and Padding should be 0.
42
+ * \par
43
+ * See \ref im_raw.h
44
+ *
45
+ * \section Features
46
+ *
47
+ \verbatim
48
+ Data Types: <all>
49
+ Color Spaces: all, except MAP.
50
+ Compressions:
51
+ NONE - no compression [default]
52
+ ASCII (textual data)
53
+ Can have more than one image, depends on "StartOffset" attribute.
54
+ Can have an alpha channel.
55
+ Components can be packed or not.
56
+ Lines arranged from top down to bottom or bottom up to top.
57
+
58
+ Attributes:
59
+ Width, Height, ColorMode, DataType IM_INT (1)
60
+ ImageCount[1], StartOffset[0], SwitchType[FALSE], ByteOrder[IM_LITTLEENDIAN], Padding[0] IM_INT (1)
61
+
62
+ Comments:
63
+ In fact ASCII is an expansion, not a compression, because the file will be larger than binary data.
64
+ \endverbatim
65
+ * \ingroup format */
66
+ imFormat* imFormatInitRAW(void);
67
+
68
+ void imFormatFinishRAW(void);
69
+
70
+ #if defined(__cplusplus)
71
+ }
72
+ #endif
73
+
74
+ #endif
@@ -0,0 +1,101 @@
1
+ /** \file
2
+ * \brief Register the WMF Format
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_FORMAT_WMV_H
8
+ #define __IM_FORMAT_WMV_H
9
+
10
+ #if defined(__cplusplus)
11
+ extern "C" {
12
+ #endif
13
+
14
+ /** \defgroup wmv WMV - Windows Media Video Format
15
+ * \section Description
16
+ *
17
+ * \par
18
+ * Advanced Systems Format (ASF) \n
19
+ * Windows Copyright Microsoft Corporation.
20
+ * \par
21
+ * Access to the WMV format uses Windows Media SDK. Available in Windows Only. \n
22
+ * You must link the application with "im_wmv.lib"
23
+ * and you must call the function \ref imFormatRegisterWMV once
24
+ * to register the format into the IM core library.
25
+ * In Lua call require"imlua_wmv". \n
26
+ * Depends also on the WMF SDK (wmvcore.lib).
27
+ * When using the "im_wmv.dll" this extra library is not necessary.
28
+ * \par
29
+ * The application users should have the WMV codec 9 installed:
30
+ * http://www.microsoft.com/windows/windowsmedia/format/codecdownload.aspx
31
+ * \par
32
+ * You must agree with the WMF SDK EULA to use the SDK. \n
33
+ * http://wmlicense.smdisp.net/v9sdk/
34
+ * \par
35
+ * For more information: \n
36
+ * http://www.microsoft.com/windows/windowsmedia/9series/sdk.aspx \n
37
+ * http://msdn.microsoft.com/library/en-us/wmform/htm/introducingwindowsmediaformat.asp
38
+ * \par
39
+ * See \ref im_format_wmv.h
40
+ *
41
+ * \section Features
42
+ *
43
+ \verbatim
44
+ Data Types: Byte
45
+ Color Spaces: RGB and MAP (Gray and Binary saved as MAP)
46
+ Compressions (installed in Windows XP by default):
47
+ NONE - no compression
48
+ MPEG-4v3 - Windows Media MPEG-4 Video V3
49
+ MPEG-4v1 - ISO MPEG-4 Video V1
50
+ WMV7 - Windows Media Video V7
51
+ WMV7Screen - Windows Media Screen V7
52
+ WMV8 - Windows Media Video V8
53
+ WMV9Screen - Windows Media Video 9 Screen
54
+ WMV9 - Windows Media Video 9 [default]
55
+ Unknown - Others
56
+ Can have more than one image.
57
+ Can have an alpha channel (only for RGB) ?
58
+ Internally the components are always packed.
59
+ Lines arranged from top down to bottom or bottom up to top.
60
+ Handle(0) return NULL. imBinFile is not supported.
61
+ Handle(1) returns IWMSyncReader* when reading, IWMWriter* when writing.
62
+
63
+ Attributes:
64
+ FPS IM_FLOAT (1) (should set when writing, default 15)
65
+ WMFQuality IM_INT (1) [0-100, default 50] (write only)
66
+ MaxKeyFrameTime IM_INT (1) (write only) [maximum key frame interval in miliseconds, default 5 seconds]
67
+ DataRate IM_INT (1) (write only) [kilobits/second, default 2400]
68
+ VBR IM_INT (1) [0, 1] (write only) [0 - Constant Bit Rate (default), 1 - Variable Bit Rate (Quality-Based)]
69
+ (and several others from the file-level attributes) For ex:
70
+ Title, Author, Copyright, Description (string)
71
+ Duration IM_INT [100-nanosecond units]
72
+ Seekable, HasAudio, HasVideo, Is_Protected, Is_Trusted, IsVBR IM_INT (1) [0, 1]
73
+ NumberOfFrames IM_INT (1)
74
+
75
+ Comments:
76
+ IMPORTANT - The "image_count" and the "FPS" attribute may not be available from the file,
77
+ we try to estimate from the duration and from the average time between frames, or using the default value.
78
+ We do not handle DRM protected files (Digital Rights Management).
79
+ Reads only the first video stream. Other streams are ignored.
80
+ All the images have the same size, you must call imFileReadImageInfo/imFileWriteImageInfo
81
+ at least once.
82
+ For optimal random reading, the file should be indexed previously.
83
+ If not indexed by frame, random positioning may not be precise.
84
+ Sequencial reading will always be precise.
85
+ When writing we use a custom profile and time indexing only.
86
+ We do not support multipass encoding.
87
+ Since the driver uses COM, CoInitialize(NULL) and CoUninitialize() are called every Open/Close.
88
+ \endverbatim
89
+ * \ingroup format */
90
+
91
+ /** Register the WMF Format. \n
92
+ * In Lua, when using require"imlua_wmv" this function will be automatically called.
93
+ * \ingroup wmv */
94
+ void imFormatRegisterWMV(void);
95
+
96
+
97
+ #if defined(__cplusplus)
98
+ }
99
+ #endif
100
+
101
+ #endif
@@ -0,0 +1,425 @@
1
+ /** \file
2
+ * \brief Image Manipulation
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_IMAGE_H
8
+ #define __IM_IMAGE_H
9
+
10
+ #if defined(__cplusplus)
11
+ extern "C" {
12
+ #endif
13
+
14
+
15
+ /** \defgroup imgclass imImage
16
+ *
17
+ * \par
18
+ * Base definitions and functions for image representation. \n
19
+ * Only the image processing operations depends on these definitions,
20
+ * Image Storage and Image Capture are completely independent.
21
+ * \par
22
+ * You can also initialize a structure with your own memory buffer, see \ref imImageInit.
23
+ * To release the structure without releasing the buffer,
24
+ * set "data[0]" to NULL before calling imImageDestroy.
25
+ * \par
26
+ * See \ref im_image.h
27
+ * \ingroup imagerep */
28
+
29
+
30
+
31
+ /** \brief imImage Structure Definition.
32
+ *
33
+ * \par
34
+ * An image representation than supports all the color spaces,
35
+ * but planes are always unpacked and the orientation is always bottom up.
36
+ * \ingroup imgclass */
37
+ typedef struct _imImage
38
+ {
39
+ /* main parameters */
40
+ int width; /**< Number of columns. image:Width() -> width: number [in Lua 5]. */
41
+ int height; /**< Number of lines. image:Height() -> height: number [in Lua 5]. */
42
+ int color_space; /**< Color space descriptor. See also \ref imColorSpace. image:ColorSpace() -> color_space: number [in Lua 5]. */
43
+ int data_type; /**< Data type descriptor. See also \ref imDataType. image:DataType() -> data_type: number [in Lua 5]. */
44
+ int has_alpha; /**< Indicates that there is an extra channel with alpha. image:HasAlpha() -> has_alpha: number [in Lua 5]. \n
45
+ It will not affect the secondary parameters, i.e. the number of planes will be in fact depth+1. \n
46
+ It is always 0 unless imImageAddAlpha is called, this is done in image load functions. */
47
+
48
+ /* secondary parameters */
49
+ int depth; /**< Number of planes (ColorSpaceDepth) */
50
+ int line_size; /**< Number of bytes per line in one plane (width * DataTypeSize) */
51
+ int plane_size; /**< Number of bytes per plane. (line_size * height) */
52
+ int size; /**< Number of bytes occupied by the image (plane_size * depth) */
53
+ int count; /**< Number of pixels (width * height) */
54
+
55
+ /* image data */
56
+ void** data; /**< Image data organized as a 2D matrix with several planes. \n
57
+ But plane 0 is also a pointer to the full data. \n
58
+ The remaining planes are: data[i] = data[0] + i*plane_size \n
59
+ In Lua, data indexing is possible using: image[plane][row][column] */
60
+
61
+ /* image attributes */
62
+ long *palette; /**< Color palette. image:GetPalette() -> palette: imPalette [in Lua 5]. \n
63
+ Used when depth=1. Otherwise is NULL. */
64
+ int palette_count; /**< The palette is always 256 colors allocated, but can have less colors used. */
65
+
66
+ void* attrib_table; /**< in fact is an imAttribTable, but we hide this here */
67
+ } imImage;
68
+
69
+
70
+ /** Creates a new image.
71
+ * See also \ref imDataType and \ref imColorSpace. Image data is cleared as \ref imImageClear. \n
72
+ * In Lua the IM image metatable name is "imImage".
73
+ * When converted to a string will return "imImage(%p) [width=%d,height=%d,color_space=%s,data_type=%s,depth=%d]" where %p is replaced by the userdata address,
74
+ * and other values are replaced by the respective attributes.
75
+ * If the image is already destroyed by im.ImageDestroy, then it will return also the suffix "-destroyed".
76
+ *
77
+ * \verbatim im.ImageCreate(width: number, height: number, color_space: number, data_type: number) -> image: imImage [in Lua 5] \endverbatim
78
+ * \ingroup imgclass */
79
+ imImage* imImageCreate(int width, int height, int color_space, int data_type);
80
+
81
+ /** Initializes the image structure but does not allocates image data.
82
+ * See also \ref imDataType and \ref imColorSpace.
83
+ * \ingroup imgclass */
84
+ imImage* imImageInit(int width, int height, int color_space, int data_type, void* data_buffer, long* palette, int palette_count);
85
+
86
+ /** Creates a new image based on an existing one. \n
87
+ * If the addicional parameters are -1, the given image parameters are used. \n
88
+ * The image atributes always are copied. HasAlpha is copied.
89
+ * See also \ref imDataType and \ref imColorSpace.
90
+ *
91
+ * \verbatim im.ImageCreateBased(image: imImage, [width: number], [height: number], [color_space: number], [data_type: number]) -> image: imImage [in Lua 5] \endverbatim
92
+ * The addicional parameters in Lua can be nil,
93
+ * and they can also be functions with the based image as a parameter to return the respective value.
94
+ * \ingroup imgclass */
95
+ imImage* imImageCreateBased(const imImage* image, int width, int height, int color_space, int data_type);
96
+
97
+ /** Destroys the image and frees the memory used.
98
+ * image data is destroyed only if its data[0] is not NULL. \n
99
+ * In Lua if this function is not called, the image is destroyed by the garbage collector.
100
+ *
101
+ * \verbatim im.ImageDestroy(image: imImage) [in Lua 5] \endverbatim
102
+ * \verbatim image:Destroy() [in Lua 5] \endverbatim
103
+ * \ingroup imgclass */
104
+ void imImageDestroy(imImage* image);
105
+
106
+ /** Adds an alpha channel plane and sets its value to 0 (transparent).
107
+ *
108
+ * \verbatim image:AddAlpha() [in Lua 5] \endverbatim
109
+ * \ingroup imgclass */
110
+ void imImageAddAlpha(imImage* image);
111
+
112
+ /** Sets the alpha channel plane to a constant.
113
+ *
114
+ * \verbatim image:SetAlpha() [in Lua 5] \endverbatim
115
+ * \ingroup imgclass */
116
+ void imImageSetAlpha(imImage* image, float alpha);
117
+
118
+ /** Changes the buffer size. Reallocate internal buffers if the new size is larger than the original.
119
+ *
120
+ * \verbatim image:Reshape(width: number, height: number) [in Lua 5] \endverbatim
121
+ * \ingroup imgclass */
122
+ void imImageReshape(imImage* image, int width, int height);
123
+
124
+ /** Copy image data and attributes from one image to another. \n
125
+ * Images must have the same size and type.
126
+ *
127
+ * \verbatim image:Copy(dst_image: imImage) [in Lua 5] \endverbatim
128
+ * \ingroup imgclass */
129
+ void imImageCopy(const imImage* src_image, imImage* dst_image);
130
+
131
+ /** Copy image data only fom one image to another. \n
132
+ * Images must have the same size and type.
133
+ *
134
+ * \verbatim image:CopyData(dst_image: imImage) [in Lua 5] \endverbatim
135
+ * \ingroup imgclass */
136
+ void imImageCopyData(const imImage* src_image, imImage* dst_image);
137
+
138
+ /** Copies the image attributes from src to dst.
139
+ * Includes the pallete when a MAP or GRAY image.
140
+ *
141
+ * \verbatim image:CopyAttributes(dst_image: imImage) [in Lua 5] \endverbatim
142
+ * \ingroup imgclass */
143
+ void imImageCopyAttributes(const imImage* src_image, imImage* dst_image);
144
+
145
+ /** Copy one image plane fom one image to another. \n
146
+ * Images must have the same size and type.
147
+ *
148
+ * \verbatim image:CopyPlane(src_plane: number, dst_image: imImage, dst_plane: number) [in Lua 5] \endverbatim
149
+ * \ingroup imgclass */
150
+ void imImageCopyPlane(const imImage* src_image, int src_plane, imImage* dst_image, int dst_plane);
151
+
152
+ /** Creates a copy of the image.
153
+ *
154
+ * \verbatim image:Duplicate() -> new_image: imImage [in Lua 5] \endverbatim
155
+ * \ingroup imgclass */
156
+ imImage* imImageDuplicate(const imImage* image);
157
+
158
+ /** Creates a clone of the image. i.e. same attributes but ignore contents.
159
+ *
160
+ * \verbatim image:Clone() -> new_image: imImage [in Lua 5] \endverbatim
161
+ * \ingroup imgclass */
162
+ imImage* imImageClone(const imImage* image);
163
+
164
+ /** Changes an extended attribute. \n
165
+ * The data will be internally duplicated. \n
166
+ * If data is NULL and count==0 the attribute is removed. \n
167
+ * If count is -1 and data_type is IM_BYTE then data is zero terminated.
168
+ * See also \ref imDataType.
169
+ *
170
+ * \verbatim image:SetAttribute(attrib: string, data_type: number, data: table of numbers or string) [in Lua 5] \endverbatim
171
+ * If data_type is IM_BYTE, as_string can be used as data.
172
+ * \ingroup imgclass */
173
+ void imImageSetAttribute(const imImage* image, const char* attrib, int data_type, int count, const void* data);
174
+
175
+ /** Returns an extended attribute. \n
176
+ * Returns NULL if not found.
177
+ * See also \ref imDataType.
178
+ *
179
+ * \verbatim image:GetAttribute(attrib: string, [as_string: boolean]) -> data: table of numbers or string, data_type: number [in Lua 5] \endverbatim
180
+ * If data_type is IM_BYTE, as_string can be used to return a string instead of a table.
181
+ * \ingroup imgclass */
182
+ const void* imImageGetAttribute(const imImage* image, const char* attrib, int *data_type, int *count);
183
+
184
+ /** Returns a list of the attribute names. \n
185
+ * "attrib" must contain room enough for "attrib_count" names. Use "attrib=NULL" to return only the count.
186
+ *
187
+ * \verbatim image:GetAttributeList() -> data: table of strings [in Lua 5] \endverbatim
188
+ * \ingroup imgclass */
189
+ void imImageGetAttributeList(const imImage* image, char** attrib, int *attrib_count);
190
+
191
+ /** Sets all image data to zero. But if color space is YCBCR, LAB or LUV, and data type is BYTE or USHORT, then
192
+ * data is initialized with 128 or 32768 accordingly. Alpha is initialized as transparent (0).
193
+ *
194
+ * \verbatim image:Clear() [in Lua 5] \endverbatim
195
+ * \ingroup imgclass */
196
+ void imImageClear(imImage* image);
197
+
198
+ /** Indicates that the image can be viewed in common graphic devices.
199
+ * Data type must be IM_BYTE. Color mode can be IM_RGB, IM_MAP, IM_GRAY or IM_BINARY.
200
+ *
201
+ * \verbatim image:IsBitmap() -> is_bitmap: boolean [in Lua 5] \endverbatim
202
+ * \ingroup imgclass */
203
+ int imImageIsBitmap(const imImage* image);
204
+
205
+ /** Changes the image palette.
206
+ * This will destroy the existing palette and replace it with the given palette pointer.
207
+ * Only the pointer is stored, so the palette should be a new palette and it can not be a static array.
208
+ *
209
+ * \verbatim image:SetPalette(palette: imPalette) [in Lua 5] \endverbatim
210
+ * \ingroup imgclass */
211
+ void imImageSetPalette(imImage* image, long* palette, int palette_count);
212
+
213
+ /** Returns 1 if the images match width and height. Returns 0 otherwise.
214
+ *
215
+ * \verbatim image:MatchSize(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
216
+ * \ingroup imgclass */
217
+ int imImageMatchSize(const imImage* image1, const imImage* image2);
218
+
219
+ /** Returns 1 if the images match color mode and data type. Returns 0 otherwise.
220
+ *
221
+ * \verbatim image:MatchColor(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
222
+ * \ingroup imgclass */
223
+ int imImageMatchColor(const imImage* image1, const imImage* image2);
224
+
225
+ /** Returns 1 if the images match width, height and data type. Returns 0 otherwise.
226
+ *
227
+ * \verbatim image:MatchDataType(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
228
+ * \ingroup imgclass */
229
+ int imImageMatchDataType(const imImage* image1, const imImage* image2);
230
+
231
+ /** Returns 1 if the images match width, height and color space. Returns 0 otherwise.
232
+ *
233
+ * \verbatim image:MatchColorSpace(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
234
+ * \ingroup imgclass */
235
+ int imImageMatchColorSpace(const imImage* image1, const imImage* image2);
236
+
237
+ /** Returns 1 if the images match in width, height, data type and color space. Returns 0 otherwise.
238
+ *
239
+ * \verbatim image:Match(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
240
+ * \ingroup imgclass */
241
+ int imImageMatch(const imImage* image1, const imImage* image2);
242
+
243
+ /** Changes the image color space from gray to binary by just changing color_space and the palette.
244
+ *
245
+ * \verbatim image:SetBinary() [in Lua 5] \endverbatim
246
+ * \ingroup imgclass */
247
+ void imImageSetBinary(imImage* image);
248
+
249
+ /** Changes a gray BYTE data (0,255) into a binary data (0,1), done in-place. Color space is not changed.
250
+ *
251
+ * \verbatim image:MakeBinary() [in Lua 5] \endverbatim
252
+ * \ingroup imgclass */
253
+ void imImageMakeBinary(imImage *image);
254
+
255
+ /** Changes a binary data (0,1) into a gray BYTE data (0,255), done in-place. Color space is not changed.
256
+ *
257
+ * \verbatim image:MakeGray() [in Lua 5] \endverbatim
258
+ * \ingroup imgclass */
259
+ void imImageMakeGray(imImage *image);
260
+
261
+
262
+
263
+ /** \defgroup imgfile imImage Storage
264
+ *
265
+ * \par
266
+ * Functions to simplify the process of reading and writting imImage structures.
267
+ * Will also load and save the alpha planes when possible.
268
+ * \par
269
+ * See \ref im_image.h
270
+ * \ingroup file */
271
+
272
+
273
+ /** Loads an image from an already open file. Returns NULL if failed. \n
274
+ * This will call \ref imFileReadImageInfo and \ref imFileReadImageData. \n
275
+ * index specifies the image number between 0 and image_count-1. \n
276
+ * The returned image will be of the same color_space and data_type of the image in the file. \n
277
+ * Attributes from the file will be stored at the image.
278
+ * See also \ref imErrorCodes.
279
+ *
280
+ * \verbatim ifile:LoadImage([index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
281
+ * Default index is 0.
282
+ * \ingroup imgfile */
283
+ imImage* imFileLoadImage(imFile* ifile, int index, int *error);
284
+
285
+ /** Loads an image from an already open file. Returns NULL if failed. \n
286
+ * This function assumes that the image in the file has the same parameters as the given image. \n
287
+ * This will call \ref imFileReadImageInfo and \ref imFileReadImageData. \n
288
+ * index specifies the image number between 0 and image_count-1. \n
289
+ * The returned image will be of the same color_space and data_type of the image in the file. \n
290
+ * Attributes from the file will be stored at the image.
291
+ * See also \ref imErrorCodes.
292
+ *
293
+ * \verbatim ifile:LoadImageFrame(index: number, image: imImage) -> error: number [in Lua 5] \endverbatim
294
+ * Default index is 0.
295
+ * \ingroup imgfile */
296
+ void imFileLoadImageFrame(imFile* ifile, int index, imImage* image, int *error);
297
+
298
+ /** Loads an image from an already open file, but forces the image to be a bitmap.\n
299
+ * The returned imagem will be always a Bitmap image, with color_space RGB, MAP, GRAY or BINARY, and data_type IM_BYTE. \n
300
+ * index specifies the image number between 0 and image_count-1. \n
301
+ * Returns NULL if failed.
302
+ * Attributes from the file will be stored at the image.
303
+ * See also \ref imErrorCodes.
304
+ *
305
+ * \verbatim ifile:LoadBitmap([index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
306
+ * Default index is 0.
307
+ * \ingroup imgfile */
308
+ imImage* imFileLoadBitmap(imFile* ifile, int index, int *error);
309
+
310
+ /** Loads an image region from an already open file. Returns NULL if failed. \n
311
+ * This will call \ref imFileReadImageInfo and \ref imFileReadImageData. \n
312
+ * index specifies the image number between 0 and image_count-1. \n
313
+ * The returned image will be of the same color_space and data_type of the image in the file,
314
+ * or will be a Bitmap image. \n
315
+ * Attributes from the file will be stored at the image.
316
+ * See also \ref imErrorCodes. \n
317
+ * For now, it works only for the ECW file format.
318
+ *
319
+ * \verbatim ifile:LoadRegion(index, bitmap, xmin, xmax, ymin, ymax, width, height: number) -> image: imImage, error: number [in Lua 5] \endverbatim
320
+ * Default index is 0.
321
+ * \ingroup imgfile */
322
+ imImage* imFileLoadImageRegion(imFile* ifile, int index, int bitmap, int *error,
323
+ int xmin, int xmax, int ymin, int ymax, int width, int height);
324
+
325
+ /** Loads an image from an already open file, but forces the image to be a bitmap.\n
326
+ * This function assumes that the image in the file has the same parameters as the given image. \n
327
+ * The imagem must be a Bitmap image, with color_space RGB, MAP, GRAY or BINARY, and data_type IM_BYTE. \n
328
+ * index specifies the image number between 0 and image_count-1. \n
329
+ * Returns NULL if failed.
330
+ * Attributes from the file will be stored at the image.
331
+ * See also \ref imErrorCodes.
332
+ *
333
+ * \verbatim ifile:LoadBitmapFrame(index: number, image: imImage) -> error: number [in Lua 5] \endverbatim
334
+ * Default index is 0.
335
+ * \ingroup imgfile */
336
+ void imFileLoadBitmapFrame(imFile* ifile, int index, imImage* image, int *error);
337
+
338
+ /** Saves the image to an already open file. \n
339
+ * This will call \ref imFileWriteImageInfo and \ref imFileWriteImageData. \n
340
+ * Attributes from the image will be stored at the file.
341
+ * Returns error code.
342
+ *
343
+ * \verbatim ifile:SaveImage(image: imImage) -> error: number [in Lua 5] \endverbatim
344
+ * \ingroup imgfile */
345
+ int imFileSaveImage(imFile* ifile, const imImage* image);
346
+
347
+ /** Loads an image from file. Open, loads and closes the file. \n
348
+ * index specifies the image number between 0 and image_count-1. \n
349
+ * Returns NULL if failed.
350
+ * Attributes from the file will be stored at the image.
351
+ * See also \ref imErrorCodes.
352
+ *
353
+ * \verbatim im.FileImageLoad(file_name: string, [index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
354
+ * Default index is 0.
355
+ * \ingroup imgfile */
356
+ imImage* imFileImageLoad(const char* file_name, int index, int *error);
357
+
358
+ /** Loads an image from file, but forces the image to be a bitmap. Open, loads and closes the file. \n
359
+ * index specifies the image number between 0 and image_count-1. \n
360
+ * Returns NULL if failed.
361
+ * Attributes from the file will be stored at the image.
362
+ * See also \ref imErrorCodes.
363
+ *
364
+ * \verbatim im.FileImageLoadBitmap(file_name: string, [index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
365
+ * Default index is 0.
366
+ * \ingroup imgfile */
367
+ imImage* imFileImageLoadBitmap(const char* file_name, int index, int *error);
368
+
369
+ /** Loads an image region from file. Open, loads and closes the file. \n
370
+ * index specifies the image number between 0 and image_count-1. \n
371
+ * Returns NULL if failed.
372
+ * Attributes from the file will be stored at the image.
373
+ * See also \ref imErrorCodes. \n
374
+ * For now, it works only for the ECW file format.
375
+ *
376
+ * \verbatim im.FileImageLoadRegion(file_name: string, index, bitmap, xmin, xmax, ymin, ymax, width, height: number, ) -> image: imImage, error: number [in Lua 5] \endverbatim
377
+ * Default index is 0.
378
+ * \ingroup imgfile */
379
+ imImage* imFileImageLoadRegion(const char* file_name, int index, int bitmap, int *error,
380
+ int xmin, int xmax, int ymin, int ymax, int width, int height);
381
+
382
+ /** Saves the image to file. Open, saves and closes the file. \n
383
+ * Returns error code. \n
384
+ * Attributes from the image will be stored at the file.
385
+ *
386
+ * \verbatim im.FileImageSave(file_name: string, format: string, image: imImage) -> error: number [in Lua 5] \endverbatim
387
+ * \verbatim image:Save(file_name: string, format: string) -> error: number [in Lua 5] \endverbatim
388
+ * \ingroup imgfile */
389
+ int imFileImageSave(const char* file_name, const char* format, const imImage* image);
390
+
391
+
392
+
393
+ /** Utility macro to draw the image in a CD library canvas.
394
+ * Works only for data_type IM_BYTE, and color spaces: IM_RGB, IM_MAP, IMGRAY and IM_BINARY.
395
+ * \ingroup imgclass */
396
+ #define imcdCanvasPutImage(_canvas, _image, _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax) \
397
+ { \
398
+ if (_image->color_space == IM_RGB) \
399
+ { \
400
+ if (_image->has_alpha) \
401
+ cdCanvasPutImageRectRGBA(_canvas, _image->width, _image->height, \
402
+ (unsigned char*)_image->data[0], \
403
+ (unsigned char*)_image->data[1], \
404
+ (unsigned char*)_image->data[2], \
405
+ (unsigned char*)_image->data[3], \
406
+ _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax); \
407
+ else \
408
+ cdCanvasPutImageRectRGB(_canvas, _image->width, _image->height, \
409
+ (unsigned char*)_image->data[0], \
410
+ (unsigned char*)_image->data[1], \
411
+ (unsigned char*)_image->data[2], \
412
+ _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax); \
413
+ } \
414
+ else \
415
+ cdCanvasPutImageRectMap(_canvas, _image->width, _image->height, \
416
+ (unsigned char*)_image->data[0], _image->palette, \
417
+ _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax); \
418
+ }
419
+
420
+
421
+ #if defined(__cplusplus)
422
+ }
423
+ #endif
424
+
425
+ #endif