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
@@ -0,0 +1,195 @@
1
+ /** \file
2
+ * \brief Windows DIB (Device Independent Bitmap)
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_DIB_H
8
+ #define __IM_DIB_H
9
+
10
+ #if defined(__cplusplus)
11
+ extern "C" {
12
+ #endif
13
+
14
+
15
+ /** \defgroup dib Windows DIB
16
+ *
17
+ * \par
18
+ * Windows DIBs in memory are handled just like a BMP file without the file header. \n
19
+ * These functions will work only in Windows. They are usefull for interchanging data
20
+ * with the clipboard, with capture drivers, with the AVI and WMF file formats and others.
21
+ * \par
22
+ * Supported DIB aspects:
23
+ * \li bpp must be 1, 4, 8, 16, 24, or 32.
24
+ * \li BITMAPV4HEADER or BITMAPV5HEADER are handled but ignored. \n
25
+ * \li BITMAPCOREHEADER is not handled .
26
+ * \li BI_JPEG and BI_PNG compressions are not handled.
27
+ * \li biHeight can be negative, compression can be RLE only if created
28
+ * from imDibCreateReference, imDibPasteClipboard, imDibLoadFile.
29
+ * \li can not encode/decode Images to/from RLE compressed Dibs.
30
+ * \li if working with RLE Dibs bits_size is greatter than used.
31
+ * \li the resolution of a new Dib is taken from the screen.
32
+ * \li SetDIBitsToDevice(start_scan is 0, scan_lines is dib->bmih->biHeight).
33
+ * \li StretchDIBits(use always DIB_RGB_COLORS).
34
+ * \li CreateDIBPatternBrushPt(packed_dib is dib->dib).
35
+ * \par
36
+ * Must include <windows.h> before using these functions. \n
37
+ * Check <wingdi.h> for structures and definitions.
38
+ * \par
39
+ * See \ref im_dib.h
40
+ * \ingroup util */
41
+
42
+
43
+ /** \brief Windows DIB Structure
44
+ *
45
+ * \par
46
+ * Handles a DIB in memory. \n
47
+ * The DIB is stored in only one buffer.
48
+ * The secondary members are pointers to the main buffer.
49
+ * \ingroup dib */
50
+ typedef struct _imDib
51
+ {
52
+ HGLOBAL handle; /**< The windows memory handle */
53
+ BYTE* dib; /**< The DIB as it is defined in memory */
54
+ int size; /**< Full size in memory */
55
+
56
+ BITMAPINFO* bmi; /**< Bitmap Info = Bitmap Info Header + Palette */
57
+ BITMAPINFOHEADER* bmih; /**< Bitmap Info Header */
58
+ RGBQUAD* bmic; /**< Bitmap Info Colors = Palette */
59
+ BYTE* bits; /**< Bitmap Bits */
60
+
61
+ int palette_count; /**< number of colors in the palette */
62
+ int bits_size; /**< size in bytes of the Bitmap Bits */
63
+ int line_size; /**< size in bytes of one line, includes padding */
64
+ int pad_size; /**< number of bytes remaining in the line, lines are in a word boundary */
65
+
66
+ int is_reference; /**< only a reference, do not free pointer */
67
+ } imDib;
68
+
69
+ /** Creates a new DIB. \n
70
+ * use bpp=-16/-32 to allocate space for BITFLIEDS.
71
+ * \ingroup dib */
72
+ imDib* imDibCreate(int width, int height, int bpp);
73
+
74
+ /** Duplicates the DIB contents in a new DIB.
75
+ * \ingroup dib */
76
+ imDib* imDibCreateCopy(const imDib* dib);
77
+
78
+ /** Creates a DIB using an already allocated memory. \n
79
+ * "bmi" must be a pointer to BITMAPINFOHEADER. \n
80
+ * "bits" can be NULL if it is inside "bmi" after the palette.
81
+ * \ingroup dib */
82
+ imDib* imDibCreateReference(BYTE* bmi, BYTE* bits);
83
+
84
+ /** Creates a DIB section for drawing porposes. \n
85
+ * Returns the image handle also created.
86
+ * \ingroup dib */
87
+ imDib* imDibCreateSection(HDC hDC, HBITMAP *image, int width, int height, int bpp);
88
+
89
+ /** Destroy the DIB
90
+ * \ingroup dib */
91
+ void imDibDestroy(imDib* dib);
92
+
93
+ /** DIB GetPixel function definition. \n
94
+ * the DWORD is a raw copy of the bits, use (unsigned char*)&pixel
95
+ * \ingroup dib */
96
+ typedef unsigned int (*imDibLineGetPixel)(unsigned char* line, int col);
97
+
98
+ /** Returns a function to read pixels from a DIB line.
99
+ * \ingroup dib */
100
+ imDibLineGetPixel imDibLineGetPixelFunc(int bpp);
101
+
102
+ /** DIB SetPixel function definition
103
+ * \ingroup dib */
104
+ typedef void (*imDibLineSetPixel)(unsigned char* line, int col, unsigned int pixel);
105
+
106
+ /** Returns a function to write pixels into a DIB line.
107
+ * \ingroup dib */
108
+ imDibLineSetPixel imDibLineSetPixelFunc(int bpp);
109
+
110
+ /** Creates a DIB from a image handle and a palette handle.
111
+ * \ingroup dib */
112
+ imDib* imDibFromHBitmap(const HBITMAP image, const HPALETTE hPalette);
113
+
114
+ /** Creates a image handle from a DIB.
115
+ * \ingroup dib */
116
+ HBITMAP imDibToHBitmap(const imDib* dib);
117
+
118
+ /** Returns a Logical palette from the DIB palette. \n
119
+ * DIB bpp must be <=8.
120
+ * \ingroup dib */
121
+ HPALETTE imDibLogicalPalette(const imDib* dib);
122
+
123
+ /** Captures the screen into a DIB.
124
+ * \ingroup dib */
125
+ imDib* imDibCaptureScreen(int x, int y, int width, int height);
126
+
127
+ /** Transfer the DIB to the clipboard. \n
128
+ * "dib" pointer can not be used after, or use imDibCopyClipboard(imDibCreateCopy(dib)).
129
+ * Warning: Clipboard functions in C++ can fail with Visual C++ /EHsc (Enable C++ Exceptions)
130
+ * \ingroup dib */
131
+ void imDibCopyClipboard(imDib* dib);
132
+
133
+ /** Creates a reference for the DIB in the clipboard if any. Returns NULL otherwise.
134
+ * Warning: Clipboard functions in C++ can fail with Visual C++ /EHsc (Enable C++ Exceptions)
135
+ * \ingroup dib */
136
+ imDib* imDibPasteClipboard(void);
137
+
138
+ /** Checks if there is a dib at the clipboard.
139
+ * \ingroup dib */
140
+ int imDibIsClipboardAvailable(void);
141
+
142
+ /** Saves the DIB into a file ".bmp".
143
+ * \ingroup dib */
144
+ int imDibSaveFile(const imDib* dib, const char* filename);
145
+
146
+ /** Creates a DIB from a file ".bmp".
147
+ * \ingroup dib */
148
+ imDib* imDibLoadFile(const char* filename);
149
+
150
+ /** Converts a DIB into an RGBA image. alpha is optional. bpp must be >8. \n
151
+ * alpha is used only when bpp=32.
152
+ * \ingroup dib */
153
+ void imDibDecodeToRGBA(const imDib* dib, unsigned char* red, unsigned char* green, unsigned char* blue, unsigned char* alpha);
154
+
155
+ /** Converts a DIB into an indexed image. bpp must be <=8. colors must have room for at least 256 colors.
156
+ * colors is rgb packed (RGBRGBRGB...)
157
+ * \ingroup dib */
158
+ void imDibDecodeToMap(const imDib* dib, unsigned char* map, long* palette);
159
+
160
+ /** Converts an RGBA image into a DIB. alpha is optional. bpp must be >8. \n
161
+ * alpha is used only when bpp=32.
162
+ * \ingroup dib */
163
+ void imDibEncodeFromRGBA(imDib* dib, const unsigned char* red, const unsigned char* green, const unsigned char* blue, const unsigned char* alpha);
164
+
165
+ /** Converts an indexed image into a DIB. bpp must be <=8. \n
166
+ * colors is rgb packed (RGBRGBRGB...)
167
+ * \ingroup dib */
168
+ void imDibEncodeFromMap(imDib* dib, const unsigned char* map, const long* palette, int palette_count);
169
+
170
+ /** Converts a IM_RGB packed image, with or without alpha, into a DIB.
171
+ * \ingroup dib */
172
+ void imDibEncodeFromBitmap(imDib* dib, const unsigned char* data);
173
+
174
+ /** Converts a DIB into IM_RGB packed image, with or without alpha.
175
+ * \ingroup dib */
176
+ void imDibDecodeToBitmap(const imDib* dib, unsigned char* data);
177
+
178
+ #ifdef __IM_IMAGE_H
179
+ /* You must include "im_image.h" before this header to enable these declarations. */
180
+
181
+ /** Creates a imImage from the dib data.
182
+ * \ingroup dib */
183
+ imImage* imDibToImage(const imDib* dib);
184
+
185
+ /** Creates a Dib from the image. It must be a bitmap image.
186
+ * \ingroup dib */
187
+ imDib* imDibFromImage(const imImage* image);
188
+
189
+ #endif
190
+
191
+ #if defined(__cplusplus)
192
+ }
193
+ #endif
194
+
195
+ #endif
@@ -0,0 +1,115 @@
1
+ /** \file
2
+ * \brief File Access
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_FILE_H
8
+ #define __IM_FILE_H
9
+
10
+ #include "im.h"
11
+
12
+ #if defined(__cplusplus)
13
+ extern "C" {
14
+ #endif
15
+
16
+
17
+ /** \defgroup filesdk File Format SDK
18
+ * \par
19
+ * All the file formats are based on theses structures. Use them to create new file formats. \n
20
+ * The LineBuffer functions will help transfer image from format buffer to application buffer and vice-versa.
21
+ * \par
22
+ * See \ref im_file.h
23
+ * \ingroup file */
24
+
25
+
26
+ /** \brief Image File Format Base Class (SDK Use Only)
27
+ *
28
+ * \par
29
+ * Base container to hold format independent state variables.
30
+ * \ingroup filesdk */
31
+ struct _imFile
32
+ {
33
+ int is_new;
34
+ void* attrib_table; /**< in fact is a imAttribTable, but we hide this here */
35
+
36
+ void* line_buffer; /**< used for line convertion, contains all components if packed, or only one if not */
37
+ int line_buffer_size;
38
+ int line_buffer_extra; /**< extra bytes to be allocated */
39
+ int line_buffer_alloc; /**< total allocated so far */
40
+ int counter;
41
+
42
+ int convert_bpp; /**< number of bpp to unpack/pack to/from 1 byte.
43
+ When reading converts n packed bits to 1 byte (unpack). If n>1 will also expand to 0-255.
44
+ When writing converts 1 byte to 1 bit (pack).
45
+ If negative will only expand to 0-255 (no unpack or pack). */
46
+ int switch_type; /**< flag to switch the original data type: char-byte, short-ushort, uint-int, double-float */
47
+
48
+ long palette[256];
49
+ int palette_count;
50
+
51
+ int user_color_mode,
52
+ user_data_type,
53
+ file_color_mode, /* these two must be filled by te driver always. */
54
+ file_data_type;
55
+
56
+ /* these must be filled by the driver when reading,
57
+ and given by the user when writing. */
58
+
59
+ char compression[10];
60
+ int image_count,
61
+ image_index,
62
+ width,
63
+ height;
64
+ };
65
+
66
+
67
+ /* Internal Use only */
68
+
69
+ /* Initializes the imFile structure.
70
+ * Used by the special format RAW. */
71
+ void imFileClear(imFile* ifile);
72
+
73
+ /* Initializes the line buffer.
74
+ * Used by "im_file.cpp" only. */
75
+ void imFileLineBufferInit(imFile* ifile);
76
+
77
+ /* Check if the conversion is valid.
78
+ * Used by "im_file.cpp" only. */
79
+ int imFileCheckConversion(imFile* ifile);
80
+
81
+
82
+ /* File Format SDK */
83
+
84
+ /** Number of lines to be accessed.
85
+ * \ingroup filesdk */
86
+ int imFileLineBufferCount(imFile* ifile);
87
+
88
+ /** Increments the row and plane counters.
89
+ * \ingroup filesdk */
90
+ void imFileLineBufferInc(imFile* ifile, int *row, int *plane);
91
+
92
+ /** Converts from FILE color mode to USER color mode.
93
+ * \ingroup filesdk */
94
+ void imFileLineBufferRead(imFile* ifile, void* data, int line, int plane);
95
+
96
+ /** Converts from USER color mode to FILE color mode.
97
+ * \ingroup filesdk */
98
+ void imFileLineBufferWrite(imFile* ifile, const void* data, int line, int plane);
99
+
100
+ /** Utility to calculate the line size in byte with a specified alignment. \n
101
+ * "align" can be 1, 2 or 4.
102
+ * \ingroup filesdk */
103
+ int imFileLineSizeAligned(int width, int bpp, int align);
104
+
105
+ /** Set the attributes FileFormat, FileCompression and FileImageCount. \n
106
+ * Used in imFileOpen and imFileOpenAs, and after the attribute list cleared with RemoveAll.
107
+ * \ingroup filesdk */
108
+ void imFileSetBaseAttributes(imFile* ifile);
109
+
110
+
111
+ #if defined(__cplusplus)
112
+ }
113
+ #endif
114
+
115
+ #endif
@@ -0,0 +1,97 @@
1
+ /** \file
2
+ * \brief File Format Access
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #include "im_file.h"
8
+ #include "im_attrib.h"
9
+
10
+ #ifndef __IM_FORMAT_H
11
+ #define __IM_FORMAT_H
12
+
13
+
14
+ class imFormat;
15
+
16
+ /** \brief Image File Format Virtual Class (SDK Use Only)
17
+ *
18
+ * \par
19
+ * Virtual Base class for file formats. All file formats inherit from this class.
20
+ * \ingroup filesdk */
21
+ class imFileFormatBase: public _imFile
22
+ {
23
+ public:
24
+ const imFormat* iformat;
25
+
26
+ imFileFormatBase(const imFormat* _iformat): iformat(_iformat) {}
27
+ virtual ~imFileFormatBase() {}
28
+
29
+ imAttribTable* AttribTable() {return (imAttribTable*)this->attrib_table;}
30
+
31
+ /* Pure Virtual Methods. Every driver must implement all the following methods. */
32
+
33
+ virtual int Open(const char* file_name) = 0; // Must initialize compression and image_count
34
+ virtual int New(const char* file_name) = 0;
35
+ virtual void Close() = 0;
36
+ virtual void* Handle(int index) = 0;
37
+ virtual int ReadImageInfo(int index) = 0; // Should update compression
38
+ virtual int ReadImageData(void* data) = 0;
39
+ virtual int WriteImageInfo() = 0; // Should update compression
40
+ virtual int WriteImageData(void* data) = 0; // Must update image_count
41
+ };
42
+
43
+ /** \brief Image File Format Descriptor (SDK Use Only)
44
+ *
45
+ * \par
46
+ * All file formats must define these informations. They are stored by \ref imFormatRegister.
47
+ * \ingroup filesdk */
48
+ class imFormat
49
+ {
50
+ public:
51
+ const char* format;
52
+ const char* desc;
53
+ const char* ext;
54
+ const char** comp;
55
+ int comp_count,
56
+ can_sequence;
57
+
58
+ virtual imFileFormatBase* Create() const = 0;
59
+ virtual int CanWrite(const char* compression, int color_mode, int data_type) const = 0;
60
+
61
+ imFormat(const char* _format, const char* _desc, const char* _ext,
62
+ const char** _comp, int _comp_count, int _can_sequence)
63
+ :format(_format), desc(_desc), ext(_ext), comp(_comp),
64
+ comp_count(_comp_count), can_sequence(_can_sequence)
65
+ {}
66
+ virtual ~imFormat() {}
67
+ };
68
+
69
+ extern "C"
70
+ {
71
+
72
+ /* Internal Use only */
73
+
74
+ /* Opens a file with the respective format driver
75
+ * Uses the file extension to speed up the search for the format driver.
76
+ * Used by "im_file.cpp" only. */
77
+ imFileFormatBase* imFileFormatBaseOpen(const char* file_name, int *error);
78
+
79
+ /* Opens a file with the given format
80
+ * Used by "im_file.cpp" only. */
81
+ imFileFormatBase* imFileFormatBaseOpenAs(const char* file_name, const char* format, int *error);
82
+
83
+ /* Creates a file using the given format driver.
84
+ * Used by "im_file.cpp" only. */
85
+ imFileFormatBase* imFileFormatBaseNew(const char* file_name, const char* format, int *error);
86
+
87
+
88
+ /* File Format SDK */
89
+
90
+ /** Register a format driver.
91
+ * \ingroup filesdk */
92
+ void imFormatRegister(imFormat* iformat);
93
+
94
+
95
+ }
96
+
97
+ #endif
@@ -0,0 +1,575 @@
1
+ /** \file
2
+ * \brief All the Internal File Formats.
3
+ * They are all automatically registered by the library.
4
+ * The signatures are in C, but the functions are C++.
5
+ * Header for internal use only.
6
+ *
7
+ * See Copyright Notice in im_lib.h
8
+ */
9
+
10
+ #ifndef __IM_FORMAT_ALL_H
11
+ #define __IM_FORMAT_ALL_H
12
+
13
+ #if defined(__cplusplus)
14
+ extern "C" {
15
+ #endif
16
+
17
+ /** \defgroup tiff TIFF - Tagged Image File Format
18
+ * \section Description
19
+ *
20
+ * \par
21
+ * Copyright (c) 1986-1988, 1992 by Adobe Systems Incorporated. \n
22
+ * Originally created by a group of companies,
23
+ * the Aldus Corporation keeped the copyright until Aldus was aquired by Adobe. \n
24
+ * TIFF Revision 6.0 Final � June 3, 1992 \n
25
+ * http://www.adobe.com/Support/TechNotes.html
26
+ * \par
27
+ * Access to the TIFF file format uses libTIFF version 3.9.2 \n
28
+ * http://www.remotesensing.org/libtiff/ \n
29
+ * Copyright (c) 1988-1997 Sam Leffler \n
30
+ * Copyright (c) 1991-1997 Silicon Graphics, Inc. \n
31
+ *
32
+ * \section Features
33
+ *
34
+ \verbatim
35
+ Data Types: <all>
36
+ Color Spaces: Gray, RGB, CMYK, YCbCr, Lab, XYZ, Map and Binary.
37
+ Compressions:
38
+ NONE - no compression [default for IEEE Floating Point Data]
39
+ CCITTRLE - CCITT modified Huffman RLE (binary only) [default for Binary]
40
+ CCITTFAX3 - CCITT Group 3 fax (binary only)
41
+ CCITTFAX4 - CCITT Group 4 fax (binary only)
42
+ LZW - Lempel-Ziv & Welch [default]
43
+ JPEG - ISO JPEG [default for YCBCR]
44
+ NEXT - NeXT 2-bit RLE (2 bpp only)
45
+ CCITTRLEW - CCITT modified Huffman RLE with word alignment (binary only)
46
+ RLE - Packbits (Macintosh RLE) [default for MAP]
47
+ THUNDERSCAN - ThunderScan 4-bit RLE (only for 2 or 4 bpp)
48
+ PIXARLOG - Pixar companded 11-bit ZIP (only byte, ushort and float)
49
+ DEFLATE - LZ77 variation (ZIP)
50
+ ADOBE_DEFLATE - Adobe LZ77 variation
51
+ SGILOG - SGI Log Luminance RLE for L and Luv (only byte, ushort and float) [default for XYZ]
52
+ SGILOG24 - SGI Log 24-bit packed for Luv (only byte, ushort and float)
53
+ Can have more than one image.
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
+ Handle(1) returns a TIFF* libTIFF structure.
58
+
59
+ Attributes:
60
+ Photometric IM_USHORT (1) (when writing this will complement the color_mode information, for Mask, MinIsWhite, ITULab and ICCLab)
61
+ ExtraSampleInfo IM_USHORT (1) (description of alpha channel: 0- uknown, 1- pre-multiplied, 2-normal)
62
+ JPEGQuality IM_INT (1) [0-100, default 75] (write only)
63
+ ZIPQuality IM_INT (1) [1-9, default 6] (write only)
64
+ ResolutionUnit (string) ["DPC", "DPI"]
65
+ XResolution, YResolution IM_FLOAT (1)
66
+ Description, Author, Copyright, DateTime, DocumentName,
67
+ PageName, TargetPrinter, Make, Model, Software, HostComputer (string)
68
+ InkNames (strings separated by '0's)
69
+ InkSet IM_USHORT (1)
70
+ NumberOfInks IM_USHORT (1)
71
+ DotRange IM_USHORT (2)
72
+ TransferFunction0, TransferFunction1, TransferFunction3 IM_USHORT [gray=0, rgb=012]
73
+ ReferenceBlackWhite IMFLOAT (6)
74
+ WhitePoint IMFLOAT (2)
75
+ PrimaryChromaticities IMFLOAT (6)
76
+ YCbCrCoefficients IM_FLOAT (3)
77
+ YCbCrSubSampling IM_USHORT (2)
78
+ YCbCrPositioning IM_USHORT (1)
79
+ PageNumber IM_USHORT (2)
80
+ StoNits IM_FLOAT (1)
81
+ XPosition, YPosition IM_FLOAT (1)
82
+ SMinSampleValue, SMaxSampleValue IM_FLOAT (1)
83
+ HalftoneHints IM_USHORT (2)
84
+ SubfileType IM_INT (1)
85
+ ICCProfile IM_BYTE (N)
86
+ MultiBandCount IM_USHORT (1) [Number of bands in a multiband gray image.]
87
+ MultiBandSelect IM_USHORT (1) [Band number to read one band of a multiband gray image. Must be set before reading image info.]
88
+ and other TIFF tags as they are described in the TIFF documentation.
89
+ GeoTIFF tags:
90
+ GeoTiePoints, GeoTransMatrix, IntergraphMatrix, GeoPixelScale, GeoDoubleParams IM_FLOAT (N)
91
+ GeoASCIIParams (string)
92
+ Read-only support for EXIF tags as they are described in the EXIF 2.2 documentation. See http://www.exif.org/
93
+ DNG tags as they are described in the DNG documentation. See http://www.adobe.com/br/products/dng/
94
+ Tags BlackLevel, DefaultCropOrigin and DefaultCropSize are incorrectly interpreted by libTIFF so they are ignored.
95
+ Raw image is loaded in place of the thumbnail image in the main IFD.
96
+ SubIFDCount IM_USHORT (1) [Number of subifds of the current image.]
97
+ SubIFDSelect IM_USHORT (1) [Subifd number to be read. Must be set before reading image info.]
98
+ (other attributes can be obtained by using libTIFF directly using the Handle(1) function)
99
+
100
+ Comments:
101
+ LogLuv is in fact Y'+CIE(u,v), so we choose to always convert it to XYZ.
102
+ SubIFD is handled only for DNG.
103
+ Since LZW patent expired, LZW compression is enabled. LZW Copyright Unisys.
104
+ libGeoTIFF can be used without XTIFF initialization. Use Handle(1) to obtain a TIFF*.
105
+
106
+ Changes:
107
+ "tiff_jpeg.c" - commented "downsampled_output = TRUE" in 2 places.
108
+ A few fixes in some files, search for "IMLIB" to see the changes.
109
+ New file "tif_config.h" to match our needs.
110
+ New file "tiff_binfile.c" that implement I/O rotines using imBinFile.
111
+ \endverbatim
112
+ * \ingroup format */
113
+ void imFormatRegisterTIFF(void);
114
+
115
+ /** \defgroup jpeg JPEG - JPEG File Interchange Format
116
+ * \section Description
117
+ *
118
+ * \par
119
+ * ISO/IEC 10918 (1994, 1995, 1997, 1999)\n
120
+ * http://www.jpeg.org/
121
+ * \par
122
+ * Access to the JPEG file format uses libJPEG version 7. \n
123
+ * http://www.ijg.org \n
124
+ * Copyright (C) 1994-2009, Thomas G. Lane, Guido Vollbeding \n
125
+ * from the Independent JPEG Group.
126
+ * \par
127
+ * Access to the EXIF attributes uses libEXIF version 0.6.17. \n
128
+ * http://sourceforge.net/projects/libexif \n
129
+ * Copyright (C) 2001-2003, Lutz M�ller
130
+ *
131
+ * \section Features
132
+ *
133
+ \verbatim
134
+ Data Types: Byte
135
+ Color Spaces: Gray, RGB, CMYK and YCbCr (Binary Saved as Gray)
136
+ Compressions:
137
+ JPEG - ISO JPEG [default]
138
+ Only one image.
139
+ No alpha channel.
140
+ Internally the components are always packed.
141
+ Internally the lines are arranged from top down to bottom.
142
+ Handle(1) returns jpeg_decompress_struct* when reading, and
143
+ jpeg_compress_struct* when writing (libJPEG structures).
144
+
145
+ Attributes:
146
+ AutoYCbCr IM_INT (1) (controls YCbCr auto conversion) default 1
147
+ JPEGQuality IM_INT (1) [0-100, default 75] (write only)
148
+ ResolutionUnit (string) ["DPC", "DPI"]
149
+ XResolution, YResolution IM_FLOAT (1)
150
+ Interlaced (same as Progressive) IM_INT (1 | 0) default 0
151
+ Description (string)
152
+ (lots of Exif tags)
153
+
154
+ Changes to libJPEG:
155
+ jdatadst.c - fflush and ferror replaced by macros JFFLUSH and JFERROR.
156
+ jinclude.h - standard JFFLUSH and JFERROR definitions, and new macro HAVE_JFIO.
157
+ jdhuf.c - added support for OJPEG_SUPPORT in libTIFF.
158
+ new file created: jconfig.h
159
+
160
+ Changes to libEXIF:
161
+ new files config.h and _stdint.h
162
+ changed "exif-tag.c" to add new function
163
+ changed "exif-entry.c" to improve exif_entry_initialize
164
+
165
+ Comments:
166
+ Other APPx markers are ignored.
167
+ No thumbnail support.
168
+ RGB images are automatically converted to YCbCr when saved.
169
+ Also YcbCr are converted to RGB when loaded. Use AutoYCbCr=0 to disable this behavior.
170
+ \endverbatim
171
+ * \ingroup format */
172
+ void imFormatRegisterJPEG(void);
173
+
174
+ /** \defgroup png PNG - Portable Network Graphic Format
175
+ * \section Description
176
+ *
177
+ * \par
178
+ * Access to the PNG file format uses libPNG version 1.2.39. \n
179
+ * http://www.libpng.org \n
180
+ * Copyright (C) 1998-2009 Glenn Randers-Pehrson
181
+ *
182
+ * \section Features
183
+ *
184
+ \verbatim
185
+ Data Types: Byte and UShort
186
+ Color Spaces: Gray, RGB, MAP and Binary
187
+ Compressions:
188
+ DEFLATE - LZ77 variation (ZIP) [default]
189
+ Only one image.
190
+ Can have an alpha channel.
191
+ Internally the components are always packed.
192
+ Internally the lines are arranged from top down to bottom.
193
+ Handle(1) returns png_structp libPNG structure.
194
+
195
+ Attributes:
196
+ ZIPQuality IM_INT (1) [1-9, default 6] (write only)
197
+ ResolutionUnit (string) ["DPC", "DPI"]
198
+ XResolution, YResolution IM_FLOAT (1)
199
+ Interlaced (same as Progressive) IM_INT (1 | 0) default 0
200
+ Gamma IM_FLOAT (1)
201
+ WhitePoint IMFLOAT (2)
202
+ PrimaryChromaticities IMFLOAT (6)
203
+ XPosition, YPosition IM_FLOAT (1)
204
+ sRGBIntent IM_INT (1) [0: Perceptual, 1: Relative colorimetric, 2: Saturation, 3: Absolute colorimetric]
205
+ TransparencyMap IM_BYTE (N) (for MAP images is the alpha value of the corresponding palette index)
206
+ TransparencyIndex IM_BYTE (1) (for MAP images is the first index that has minimum alpha in TransparencyMap, for GRAY images is the index that it is fully transparent)
207
+ TransparencyColor IM_BYTE (3) (for RGB images is the color that is full transparent)
208
+ CalibrationName, CalibrationUnits (string)
209
+ CalibrationLimits IM_INT (2)
210
+ CalibrationEquation IM_BYTE (1) [0-Linear,1-Exponential,2-Arbitrary,3-HyperbolicSine)]
211
+ CalibrationParam (string) [params separated by '\\n']
212
+ Title, Author, Description, Copyright, DateTime (string)
213
+ Software, Disclaimer, Warning, Source, Comment, ... (string)
214
+ DateTimeModified (string) [when writing uses the current system time]
215
+ ICCProfile IM_BYTE (N)
216
+ ScaleUnit (string) ["meters", "radians"]
217
+ XScale, YScale IM_FLOAT (1)
218
+
219
+ Comments:
220
+ When saving PNG image with TransparencyIndex or TransparencyMap, TransparencyMap has precedence, so set it to NULL if you changed TransparencyIndex.
221
+ Attributes after the image are ignored.
222
+ Define PNG_NO_CONSOLE_IO to avoid printfs. We also define PNG_TIME_RFC1123_SUPPORTED.
223
+ Added the following files to the makefile to optimize the library:
224
+ pngvcrd.c - PNG_USE_PNGVCRD
225
+ For Intel x86 CPU and Microsoft Visual C++ compiler
226
+ pnggccrd.c - PNG_USE_PNGGCCRD
227
+ For Intel x86 CPU (Pentium-MMX or later) and GNU C compiler.
228
+ \endverbatim
229
+ * \ingroup format */
230
+ void imFormatRegisterPNG(void);
231
+
232
+ /** \defgroup gif GIF - Graphics Interchange Format
233
+ * \section Description
234
+ *
235
+ * \par
236
+ * Copyright (c) 1987,1988,1989,1990 CompuServe Incorporated. \n
237
+ * GIF is a Service Mark property of CompuServe Incorporated. \n
238
+ * Graphics Interchange Format Programming Reference, 1990. \n
239
+ * LZW Copyright Unisys.
240
+ * \par
241
+ * Patial Internal Implementation. \n
242
+ * Decoding and encoding code were extracted from GIFLib 1.0. \n
243
+ * Copyright (c) 1989 Gershon Elber.
244
+ *
245
+ * \section Features
246
+ *
247
+ \verbatim
248
+ Data Types: Byte
249
+ Color Spaces: MAP only, (Gray and Binary saved as MAP)
250
+ Compressions:
251
+ LZW - Lempel-Ziv & Welch [default]
252
+ Can have more than one image.
253
+ No alpha channel.
254
+ Internally the lines are arranged from top down to bottom.
255
+
256
+ Attributes:
257
+ ScreenHeight, ScreenWidth IM_USHORT (1) screen size [default to the first image size]
258
+ Interlaced IM_INT (1 | 0) default 0
259
+ Description (string)
260
+ TransparencyIndex IM_BYTE (1)
261
+ XScreen, YScreen IM_USHORT (1) screen position
262
+ UserInput IM_BYTE (1) [1, 0]
263
+ Disposal (string) [UNDEF, LEAVE, RBACK, RPREV]
264
+ Delay IM_USHORT (1) [time to wait betweed frames in 1/100 of a second]
265
+ Iterations IM_USHORT (1) (NETSCAPE2.0 Application Extension) [The number of times to repeat the animation. 0 means to repeat forever. ]
266
+
267
+ Comments:
268
+ Attributes after the last image are ignored.
269
+ Reads GIF87 and GIF89, but writes GIF89 always.
270
+ Ignored attributes: Background Color Index, Pixel Aspect Ratio,
271
+ Plain Text Extensions, Application Extensions...
272
+ \endverbatim
273
+ * \ingroup format */
274
+ void imFormatRegisterGIF(void);
275
+
276
+ /** \defgroup bmp BMP - Windows Device Independent Bitmap
277
+ * \section Description
278
+ *
279
+ * \par
280
+ * Windows Copyright Microsoft Corporation.
281
+ * \par
282
+ * Internal Implementation.
283
+ *
284
+ * \section Features
285
+ *
286
+ \verbatim
287
+ Data Types: Byte
288
+ Color Spaces: RGB, MAP and Binary (Gray saved as MAP)
289
+ Compressions:
290
+ NONE - no compression [default]
291
+ RLE - Run Lenght Encoding (only for MAP and Gray)
292
+ Only one image.
293
+ Can have an alpha channel (only for RGB)
294
+ Internally the components are always packed.
295
+ Lines arranged from top down to bottom or bottom up to top. But are saved always as bottom up.
296
+
297
+ Attributes:
298
+ ResolutionUnit (string) ["DPC", "DPI"]
299
+ XResolution, YResolution IM_FLOAT (1)
300
+
301
+ Comments:
302
+ Reads OS2 1.x and Windows 3, but writes Windows 3 always.
303
+ Version 4 and 5 BMPs are not supported.
304
+ \endverbatim
305
+ * \ingroup format */
306
+ void imFormatRegisterBMP(void);
307
+
308
+ /** \defgroup ras RAS - Sun Raster File
309
+ * \section Description
310
+ *
311
+ * \par
312
+ * Copyright Sun Corporation.
313
+ * \par
314
+ * Internal Implementation.
315
+ *
316
+ * \section Features
317
+ *
318
+ \verbatim
319
+ Data Types: Byte
320
+ Color Spaces: Gray, RGB, MAP and Binary
321
+ Compressions:
322
+ NONE - no compression [default]
323
+ RLE - Run Lenght Encoding
324
+ Only one image.
325
+ Can have an alpha channel (only for IM_RGB)
326
+ Internally the components are always packed.
327
+ Internally the lines are arranged from top down to bottom.
328
+
329
+ Attributes:
330
+ none
331
+ \endverbatim
332
+ * \ingroup format */
333
+ void imFormatRegisterRAS(void);
334
+
335
+ /** \defgroup led LED - IUP image in LED
336
+ * \section Description
337
+ *
338
+ * \par
339
+ * Copyright Tecgraf/PUC-Rio and PETROBRAS/CENPES.
340
+ * \par
341
+ * Internal Implementation.
342
+ *
343
+ * \section Features
344
+ *
345
+ \verbatim
346
+ Data Types: Byte
347
+ Color Spaces: MAP only (Gray and Binary saved as MAP)
348
+ Compressions:
349
+ NONE - no compression [default]
350
+ Only one image.
351
+ No alpha channel.
352
+ Internally the lines are arranged from top down to bottom.
353
+
354
+ Attributes:
355
+ none
356
+
357
+ Comments:
358
+ LED file must start with "LEDImage = IMAGE[".
359
+ \endverbatim
360
+ * \ingroup format */
361
+ void imFormatRegisterLED(void);
362
+
363
+ /** \defgroup sgi SGI - Silicon Graphics Image File Format
364
+ * \section Description
365
+ *
366
+ * \par
367
+ * SGI is a trademark of Silicon Graphics, Inc.
368
+ * \par
369
+ * Internal Implementation.
370
+ *
371
+ * \section Features
372
+ *
373
+ \verbatim
374
+ Data Types: Byte and UShort
375
+ Color Spaces: Gray and RGB (Binary saved as Gray, MAP with fixed palette when reading only)
376
+ Compressions:
377
+ NONE - no compression [default]
378
+ RLE - Run Lenght Encoding
379
+ Only one image.
380
+ Can have an alpha channel (only for IM_RGB)
381
+ Internally the components are always packed.
382
+ Internally the lines are arranged from bottom up to top.
383
+
384
+ Attributes:
385
+ Description (string)
386
+ \endverbatim
387
+ * \ingroup format */
388
+ void imFormatRegisterSGI(void);
389
+
390
+ /** \defgroup pcx PCX - ZSoft Picture
391
+ * \section Description
392
+ *
393
+ * \par
394
+ * Copyright ZSoft Corporation. \n
395
+ * ZSoft (1988) PCX Technical Reference Manual.
396
+ * \par
397
+ * Internal Implementation.
398
+ *
399
+ * \section Features
400
+ *
401
+ \verbatim
402
+ Data Types: Byte
403
+ Color Spaces: RGB, MAP and Binary (Gray saved as MAP)
404
+ Compressions:
405
+ NONE - no compression
406
+ RLE - Run Lenght Encoding [default - since uncompressed PCX is not well supported]
407
+ Only one image.
408
+ No alpha channel.
409
+ Internally the components are always packed.
410
+ Internally the lines are arranged from top down to bottom.
411
+
412
+ Attributes:
413
+ ResolutionUnit (string) ["DPC", "DPI"]
414
+ XResolution, YResolution IM_FLOAT (1)
415
+ XScreen, YScreen IM_USHORT (1) screen position
416
+
417
+ Comments:
418
+ Reads Versions 0-5, but writes Version 5 always.
419
+ \endverbatim
420
+ * \ingroup format */
421
+ void imFormatRegisterPCX(void);
422
+
423
+ /** \defgroup tga TGA - Truevision Graphics Adapter File
424
+ * \section Description
425
+ *
426
+ * \par
427
+ * Truevision TGA File Format Specification Version 2.0 \n
428
+ * Technical Manual Version 2.2 January, 1991 \n
429
+ * Copyright 1989, 1990, 1991 Truevision, Inc.
430
+ * \par
431
+ * Internal Implementation.
432
+ *
433
+ * \section Features
434
+ *
435
+ \verbatim
436
+ Supports 8 bits per component only. Data type is always Byte.
437
+ Color Spaces: Gray, RGB and MAP (Binary saved as Gray)
438
+ Compressions:
439
+ NONE - no compression [default]
440
+ RLE - Run Lenght Encoding
441
+ Only one image.
442
+ No alpha channel.
443
+ Internally the components are always packed.
444
+ Internally the lines are arranged from bottom up to top or from top down to bottom.
445
+
446
+ Attributes:
447
+ XScreen, YScreen IM_USHORT (1) screen position
448
+ Title, Author, Description, JobName, Software (string)
449
+ SoftwareVersion (read only) (string)
450
+ DateTimeModified (string) [when writing uses the current system time]
451
+ Gamma IM_FLOAT (1)
452
+ \endverbatim
453
+ * \ingroup format */
454
+ void imFormatRegisterTGA(void);
455
+
456
+ /** \defgroup pnm PNM - Netpbm Portable Image Map
457
+ * \section Description
458
+ *
459
+ * \par
460
+ * PNM formats Copyright Jef Poskanzer
461
+ * \par
462
+ * Internal Implementation.
463
+ *
464
+ * \section Features
465
+ *
466
+ \verbatim
467
+ Data Types: Byte and UShort
468
+ Color Spaces: Gray, RGB and Binary
469
+ Compressions:
470
+ NONE - no compression [default]
471
+ ASCII (textual data)
472
+ Can have more than one image, but sequencial access only.
473
+ No alpha channel.
474
+ Internally the components are always packed.
475
+ Internally the lines are arranged from top down to bottom.
476
+
477
+ Attributes:
478
+ Description (string)
479
+
480
+ Comments:
481
+ In fact ASCII is an expansion, not a compression, because the file will be larger than binary data.
482
+ \endverbatim
483
+ * \ingroup format */
484
+ void imFormatRegisterPNM(void);
485
+
486
+ /** \defgroup ico ICO - Windows Icon
487
+ * \section Description
488
+ *
489
+ * \par
490
+ * Windows Copyright Microsoft Corporation.
491
+ * \par
492
+ * Internal Implementation.
493
+ *
494
+ * \section Features
495
+ *
496
+ \verbatim
497
+ Data Types: Byte
498
+ Color Spaces: RGB, MAP and Binary (Gray saved as MAP)
499
+ Compressions:
500
+ NONE - no compression [default]
501
+ Can have more than one image. But writing is limited to 5 images,
502
+ and all images must have different sizes and bpp.
503
+ Can have an alpha channel (only for RGB)
504
+ Internally the components are always packed.
505
+ Internally the lines are arranged from bottom up to top.
506
+
507
+ Attributes:
508
+ TransparencyIndex IM_BYTE (1)
509
+
510
+ Comments:
511
+ If the user specifies an alpha channel, the AND mask is loaded as alpha if
512
+ the file color mode does not contain the IM_ALPHA flag.
513
+ For MAP imagens, if the user does not specifies an alpha channel
514
+ the TransparencyIndex is used to initialize the AND mask when writing,
515
+ and if the user does specifies an alpha channel
516
+ the most repeated index with transparency will be the transparent index.
517
+ Although any size and common bpp can be used is recomended to use the typical configurations:
518
+ 16x16, 32x32, 48x48, 64x64 or 96x96
519
+ 2 colors, 16 colors, 256 colors, 24bpp or 32bpp
520
+ \endverbatim
521
+ * \ingroup format */
522
+ void imFormatRegisterICO(void);
523
+
524
+ /** \defgroup krn KRN - IM Kernel File Format
525
+ * \section Description
526
+ *
527
+ * \par
528
+ * Textual format to provied a simple way to create kernel convolution images.
529
+ * \par
530
+ * Internal Implementation.
531
+ *
532
+ * \section Features
533
+ *
534
+ \verbatim
535
+ Data Types: Byte, Int
536
+ Color Spaces: Gray
537
+ Compressions:
538
+ NONE - no compression [default]
539
+ Only one image.
540
+ No alpha channel.
541
+ Internally the lines are arranged from top down to bottom.
542
+
543
+ Attributes:
544
+ Description (string)
545
+
546
+ Comments:
547
+ The format is very simple, inspired by PNM.
548
+ It was developed because PNM does not have support for INT and FLOAT.
549
+ Remeber that usually convolution operations use kernel size an odd number.
550
+
551
+ Format Model:
552
+ IMKERNEL
553
+ Description up to 512 characters
554
+ width height
555
+ type (0 - IM_INT, 1 - IM_FLOAT)
556
+ data...
557
+
558
+ Example:
559
+ IMKERNEL
560
+ Gradian
561
+ 3 3
562
+ 0
563
+ 0 -1 0
564
+ 0 1 0
565
+ 0 0 0
566
+ \endverbatim
567
+ * \ingroup format */
568
+ void imFormatRegisterKRN(void);
569
+
570
+
571
+ #if defined(__cplusplus)
572
+ }
573
+ #endif
574
+
575
+ #endif