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,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