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.
- data/CHANGES +3 -0
- data/MANIFEST +8 -0
- data/MIT-LICENSE +18 -0
- data/README +12 -0
- data/Rakefile +68 -80
- data/doc/build_install.txt +9 -12
- data/examples/ctrl/cbox.rb +14 -15
- data/examples/ctrl/checkboard.rb +1 -1
- data/examples/ctrl/example1.rb +53 -53
- data/examples/ctrl/example2.rb +39 -39
- data/examples/ctrl/iupcolorbar.rb +95 -95
- data/examples/ctrl/iupcolorbrowser.rb +45 -45
- data/examples/ctrl/iupdial.rb +117 -117
- data/examples/ctrl/iupgetcolor.rb +7 -7
- data/examples/ctrl/iupgetparam.rb +62 -62
- data/examples/ctrl/iupglcanvas.rb +172 -172
- data/examples/ctrl/iupmask.rb +1 -3
- data/examples/ctrl/iupmatrix.rb +39 -39
- data/examples/ctrl/iupplot2.rb +2 -1
- data/examples/ctrl/iuptabs.rb +22 -22
- data/examples/ctrl/iuptree.rb +190 -190
- data/examples/ctrl/iupval.rb +71 -71
- data/examples/ctrl/numbering.rb +46 -46
- data/examples/ctrl/sample.rb +166 -166
- data/examples/dlg/iupfiledlg.rb +19 -19
- data/examples/dlg/iupgetfile.rb +19 -19
- data/examples/dlg/iuplistdialog.rb +26 -26
- data/examples/dlg/iupmessage.rb +5 -5
- data/examples/dlg/iupscanf.rb +17 -17
- data/examples/elem/iupdialog2.rb +25 -25
- data/examples/elem/iupfill.rb +51 -51
- data/examples/elem/iupframe.rb +25 -25
- data/examples/elem/iuphbox.rb +68 -68
- data/examples/elem/iupimage.rb +113 -113
- data/examples/elem/iupitem.rb +60 -60
- data/examples/elem/iuplabel.rb +57 -57
- data/examples/elem/iuplist.rb +41 -41
- data/examples/elem/iuplist2.rb +125 -125
- data/examples/elem/iupmenu.rb +32 -32
- data/examples/elem/iupmultiline.rb +24 -24
- data/examples/elem/iupmultiline2.rb +156 -156
- data/examples/elem/iupradio.rb +32 -32
- data/examples/elem/iupseparator.rb +81 -81
- data/examples/elem/iupsubmenu.rb +85 -85
- data/examples/elem/iuptext.rb +61 -61
- data/examples/elem/iuptimer.rb +36 -36
- data/examples/elem/iuptoggle.rb +110 -110
- data/examples/elem/iupvbox.rb +87 -87
- data/examples/elem/iupzbox.rb +60 -60
- data/examples/elem/mdisample.rb +377 -376
- data/examples/elem/scrollbar.rb +66 -66
- data/examples/elem/tray.rb +90 -90
- data/examples/func/iupgetattribute.rb +32 -32
- data/examples/func/iupidle.rb +48 -48
- data/ext/extconf.rb +62 -27
- data/ext/iup-linux/include/cd.h +9 -5
- data/ext/iup-linux/include/cd_private.h +13 -6
- data/ext/iup-linux/include/cdsvg.h +22 -0
- data/ext/iup-linux/include/im.h +287 -282
- data/ext/iup-linux/include/im_attrib.h +120 -116
- data/ext/iup-linux/include/im_attrib_flat.h +39 -39
- data/ext/iup-linux/include/im_binfile.h +224 -214
- data/ext/iup-linux/include/im_capture.h +365 -365
- data/ext/iup-linux/include/im_color.h +465 -465
- data/ext/iup-linux/include/im_colorhsi.h +56 -61
- data/ext/iup-linux/include/im_complex.h +180 -160
- data/ext/iup-linux/include/im_convert.h +142 -127
- data/ext/iup-linux/include/im_counter.h +69 -69
- data/ext/iup-linux/include/im_dib.h +195 -195
- data/ext/iup-linux/include/im_file.h +115 -111
- data/ext/iup-linux/include/im_format.h +97 -79
- data/ext/iup-linux/include/im_format_all.h +575 -576
- data/ext/iup-linux/include/im_format_avi.h +88 -87
- data/ext/iup-linux/include/im_format_ecw.h +93 -93
- data/ext/iup-linux/include/im_format_jp2.h +79 -78
- data/ext/iup-linux/include/im_format_raw.h +74 -64
- data/ext/iup-linux/include/im_format_wmv.h +101 -100
- data/ext/iup-linux/include/im_image.h +425 -403
- data/ext/iup-linux/include/im_kernel.h +315 -315
- data/ext/iup-linux/include/im_lib.h +191 -191
- data/ext/iup-linux/include/im_math.h +368 -368
- data/ext/iup-linux/include/im_math_op.h +214 -219
- data/ext/iup-linux/include/im_palette.h +172 -172
- data/ext/iup-linux/include/im_plus.h +73 -73
- data/ext/iup-linux/include/im_process.h +36 -35
- data/ext/iup-linux/include/im_process_ana.h +222 -221
- data/ext/iup-linux/include/im_process_glo.h +170 -170
- data/ext/iup-linux/include/im_process_loc.h +608 -577
- data/ext/iup-linux/include/im_process_pon.h +734 -712
- data/ext/iup-linux/include/im_raw.h +34 -34
- data/ext/iup-linux/include/im_util.h +277 -277
- data/ext/iup-linux/include/imlua.h +75 -83
- data/ext/iup-linux/include/iup.h +86 -40
- data/ext/iup-linux/include/iupcb.h +1 -25
- data/ext/iup-linux/include/iupcbox.h +1 -0
- data/ext/iup-linux/include/iupcbs.h +1 -1
- data/ext/iup-linux/include/iupcells.h +1 -130
- data/ext/iup-linux/include/iupcolorbar.h +1 -126
- data/ext/iup-linux/include/iupcontrols.h +26 -16
- data/ext/iup-linux/include/iupdef.h +205 -0
- data/ext/iup-linux/include/iupdial.h +1 -63
- data/ext/iup-linux/include/iupgauge.h +1 -57
- data/ext/iup-linux/include/iupgc.h +1 -0
- data/ext/iup-linux/include/iupgetparam.h +1 -27
- data/ext/iup-linux/include/iupgl.h +2 -7
- data/ext/iup-linux/include/iupim.h +7 -1
- data/ext/iup-linux/include/iupkey.h +4 -4
- data/ext/iup-linux/include/iupmask.h +2 -1
- data/ext/iup-linux/include/iupmatrix.h +1 -63
- data/ext/iup-linux/include/iupsbox.h +1 -0
- data/ext/iup-linux/include/iupspin.h +1 -21
- data/ext/iup-linux/include/iuptabs.h +1 -75
- data/ext/iup-linux/include/iuptree.h +1 -93
- data/ext/iup-linux/include/iupval.h +1 -46
- data/ext/iup-linux/include/old_im.h +59 -59
- data/ext/iup-linux/include/wd.h +5 -0
- data/ext/iup-linux/libcd.a +0 -0
- data/ext/iup-linux/libcdcontextplus.a +0 -0
- data/ext/iup-linux/libcdgdk.a +0 -0
- data/ext/iup-linux/libcdpdf.a +0 -0
- data/ext/iup-linux/libfreetype.a +0 -0
- data/ext/iup-linux/libim.a +0 -0
- data/ext/iup-linux/libim_fftw.a +0 -0
- data/ext/iup-linux/libim_jp2.a +0 -0
- data/ext/iup-linux/libim_process.a +0 -0
- data/ext/iup-linux/libiup.a +0 -0
- data/ext/iup-linux/libiup_pplot.a +0 -0
- data/ext/iup-linux/libiupcd.a +0 -0
- data/ext/iup-linux/libiupcontrols.a +0 -0
- data/ext/iup-linux/libiupgl.a +0 -0
- data/ext/iup-linux/libiupim.a +0 -0
- data/ext/iup-linux/libiupimglib.a +0 -0
- data/ext/iup-linux/libiupmot.a +0 -0
- data/ext/iup-linux/libpdflib.a +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cd.h +9 -5
- data/ext/{iup-win32 → iup-mingw32}/include/cd_canvas.hpp +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cd_old.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cd_private.h +13 -6
- data/ext/{iup-win32 → iup-mingw32}/include/cdcgm.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdclipbd.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cddbuf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cddebug.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cddgn.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cddxf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdemf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdgdiplus.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdimage.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdirgb.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdiup.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdlua.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdlua3_private.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdlua5_private.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdluaim.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdluaiup.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdluapdf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdmf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdmf_private.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdnative.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdpdf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdpicture.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdprint.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdps.h +0 -0
- data/ext/iup-mingw32/include/cdsvg.h +22 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdwmf.h +0 -0
- data/ext/iup-mingw32/include/im.h +287 -0
- data/ext/iup-mingw32/include/im_attrib.h +120 -0
- data/ext/iup-mingw32/include/im_attrib_flat.h +39 -0
- data/ext/iup-mingw32/include/im_binfile.h +224 -0
- data/ext/iup-mingw32/include/im_capture.h +365 -0
- data/ext/iup-mingw32/include/im_color.h +465 -0
- data/ext/iup-mingw32/include/im_colorhsi.h +56 -0
- data/ext/iup-mingw32/include/im_complex.h +180 -0
- data/ext/iup-mingw32/include/im_convert.h +142 -0
- data/ext/iup-mingw32/include/im_counter.h +69 -0
- data/ext/iup-mingw32/include/im_dib.h +195 -0
- data/ext/iup-mingw32/include/im_file.h +115 -0
- data/ext/iup-mingw32/include/im_format.h +97 -0
- data/ext/iup-mingw32/include/im_format_all.h +575 -0
- data/ext/iup-mingw32/include/im_format_avi.h +88 -0
- data/ext/iup-mingw32/include/im_format_ecw.h +93 -0
- data/ext/iup-mingw32/include/im_format_jp2.h +79 -0
- data/ext/iup-mingw32/include/im_format_raw.h +74 -0
- data/ext/iup-mingw32/include/im_format_wmv.h +101 -0
- data/ext/iup-mingw32/include/im_image.h +425 -0
- data/ext/iup-mingw32/include/im_kernel.h +315 -0
- data/ext/iup-mingw32/include/im_lib.h +191 -0
- data/ext/iup-mingw32/include/im_math.h +368 -0
- data/ext/iup-mingw32/include/im_math_op.h +214 -0
- data/ext/iup-mingw32/include/im_palette.h +172 -0
- data/ext/iup-mingw32/include/im_plus.h +73 -0
- data/ext/iup-mingw32/include/im_process.h +36 -0
- data/ext/iup-mingw32/include/im_process_ana.h +222 -0
- data/ext/iup-mingw32/include/im_process_glo.h +170 -0
- data/ext/iup-mingw32/include/im_process_loc.h +608 -0
- data/ext/iup-mingw32/include/im_process_pon.h +734 -0
- data/ext/iup-mingw32/include/im_raw.h +34 -0
- data/ext/iup-mingw32/include/im_util.h +277 -0
- data/ext/iup-mingw32/include/imlua.h +75 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iup.h +86 -40
- data/ext/{iup-win32 → iup-mingw32}/include/iup_pplot.h +0 -0
- data/ext/iup-mingw32/include/iupcb.h +1 -0
- data/ext/iup-mingw32/include/iupcbox.h +1 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupcbs.h +1 -1
- data/ext/iup-mingw32/include/iupcells.h +1 -0
- data/ext/iup-mingw32/include/iupcolorbar.h +1 -0
- data/ext/iup-mingw32/include/iupcontrols.h +46 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupdef.h +205 -0
- data/ext/iup-mingw32/include/iupdial.h +1 -0
- data/ext/iup-mingw32/include/iupgauge.h +1 -0
- data/ext/iup-mingw32/include/iupgc.h +1 -0
- data/ext/iup-mingw32/include/iupgetparam.h +1 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupgl.h +2 -7
- data/ext/{iup-win32 → iup-mingw32}/include/iupim.h +7 -1
- data/ext/{iup-win32 → iup-mingw32}/include/iupkey.h +4 -4
- data/ext/{iup-win32 → iup-mingw32}/include/iuplua.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iuplua_pplot.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupluacontrols.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupluagl.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupluaim.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupluaole.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupmask.h +2 -1
- data/ext/iup-mingw32/include/iupmatrix.h +1 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupole.h +0 -0
- data/ext/iup-mingw32/include/iupsbox.h +1 -0
- data/ext/iup-mingw32/include/iupspin.h +1 -0
- data/ext/iup-mingw32/include/iuptabs.h +1 -0
- data/ext/iup-mingw32/include/iuptree.h +1 -0
- data/ext/iup-mingw32/include/iupval.h +1 -0
- data/ext/iup-mingw32/include/old_im.h +59 -0
- data/ext/{iup-win32 → iup-mingw32}/include/wd.h +5 -0
- data/ext/{iup-win32 → iup-mingw32}/include/wd_old.h +0 -0
- data/ext/iup-mingw32/libcd.a +0 -0
- data/ext/iup-mingw32/libcdpdf.a +0 -0
- data/ext/iup-mingw32/libfreetype6.a +0 -0
- data/ext/iup-mingw32/libim.a +0 -0
- data/ext/iup-mingw32/libim_avi.a +0 -0
- data/ext/iup-mingw32/libim_fftw.a +0 -0
- data/ext/iup-mingw32/libim_jp2.a +0 -0
- data/ext/iup-mingw32/libim_process.a +0 -0
- data/ext/iup-mingw32/libiup.a +0 -0
- data/ext/iup-mingw32/libiup_pplot.a +0 -0
- data/ext/iup-mingw32/libiupcd.a +0 -0
- data/ext/iup-mingw32/libiupcontrols.a +0 -0
- data/ext/iup-mingw32/libiupgl.a +0 -0
- data/ext/iup-mingw32/libiupim.a +0 -0
- data/ext/iup-mingw32/libiupimglib.a +0 -0
- data/ext/iup-mingw32/libiupole.a +0 -0
- data/ext/iup-mingw32/libpdflib.a +0 -0
- data/ext/iup-mswin32/cd.lib +0 -0
- data/ext/iup-mswin32/cdcontextplus.lib +0 -0
- data/ext/iup-mswin32/cdgdk.lib +0 -0
- data/ext/iup-mswin32/cdpdf.lib +0 -0
- data/ext/iup-mswin32/freetype6.lib +0 -0
- data/ext/iup-mswin32/im.lib +0 -0
- data/ext/iup-mswin32/im_avi.lib +0 -0
- data/ext/iup-mswin32/im_capture.lib +0 -0
- data/ext/iup-mswin32/im_fftw.lib +0 -0
- data/ext/iup-mswin32/im_jp2.lib +0 -0
- data/ext/iup-mswin32/im_process.lib +0 -0
- data/ext/iup-mswin32/im_wmv.lib +0 -0
- data/ext/iup-mswin32/include/cd.h +498 -0
- data/ext/iup-mswin32/include/cd_canvas.hpp +358 -0
- data/ext/iup-mswin32/include/cd_old.h +158 -0
- data/ext/iup-mswin32/include/cd_private.h +369 -0
- data/ext/iup-mswin32/include/cdcgm.h +34 -0
- data/ext/iup-mswin32/include/cdclipbd.h +22 -0
- data/ext/iup-mswin32/include/cddbuf.h +23 -0
- data/ext/iup-mswin32/include/cddebug.h +24 -0
- data/ext/iup-mswin32/include/cddgn.h +23 -0
- data/ext/iup-mswin32/include/cddxf.h +22 -0
- data/ext/iup-mswin32/include/cdemf.h +22 -0
- data/ext/iup-mswin32/include/cdgdiplus.h +29 -0
- data/ext/iup-mswin32/include/cdimage.h +23 -0
- data/ext/iup-mswin32/include/cdirgb.h +30 -0
- data/ext/iup-mswin32/include/cdiup.h +22 -0
- data/ext/iup-mswin32/include/cdlua.h +39 -0
- data/ext/iup-mswin32/include/cdlua3_private.h +120 -0
- data/ext/iup-mswin32/include/cdlua5_private.h +141 -0
- data/ext/iup-mswin32/include/cdluaim.h +24 -0
- data/ext/iup-mswin32/include/cdluaiup.h +27 -0
- data/ext/iup-mswin32/include/cdluapdf.h +27 -0
- data/ext/iup-mswin32/include/cdmf.h +24 -0
- data/ext/iup-mswin32/include/cdmf_private.h +32 -0
- data/ext/iup-mswin32/include/cdnative.h +26 -0
- data/ext/iup-mswin32/include/cdpdf.h +38 -0
- data/ext/iup-mswin32/include/cdpicture.h +22 -0
- data/ext/iup-mswin32/include/cdprint.h +23 -0
- data/ext/iup-mswin32/include/cdps.h +37 -0
- data/ext/iup-mswin32/include/cdsvg.h +22 -0
- data/ext/iup-mswin32/include/cdwmf.h +22 -0
- data/ext/iup-mswin32/include/im.h +287 -0
- data/ext/iup-mswin32/include/im_attrib.h +120 -0
- data/ext/iup-mswin32/include/im_attrib_flat.h +39 -0
- data/ext/iup-mswin32/include/im_binfile.h +224 -0
- data/ext/iup-mswin32/include/im_capture.h +365 -0
- data/ext/iup-mswin32/include/im_color.h +465 -0
- data/ext/iup-mswin32/include/im_colorhsi.h +56 -0
- data/ext/iup-mswin32/include/im_complex.h +180 -0
- data/ext/iup-mswin32/include/im_convert.h +142 -0
- data/ext/iup-mswin32/include/im_counter.h +69 -0
- data/ext/iup-mswin32/include/im_dib.h +195 -0
- data/ext/iup-mswin32/include/im_file.h +115 -0
- data/ext/iup-mswin32/include/im_format.h +97 -0
- data/ext/iup-mswin32/include/im_format_all.h +575 -0
- data/ext/iup-mswin32/include/im_format_avi.h +88 -0
- data/ext/iup-mswin32/include/im_format_ecw.h +93 -0
- data/ext/iup-mswin32/include/im_format_jp2.h +79 -0
- data/ext/iup-mswin32/include/im_format_raw.h +74 -0
- data/ext/iup-mswin32/include/im_format_wmv.h +101 -0
- data/ext/iup-mswin32/include/im_image.h +425 -0
- data/ext/iup-mswin32/include/im_kernel.h +315 -0
- data/ext/iup-mswin32/include/im_lib.h +191 -0
- data/ext/iup-mswin32/include/im_math.h +368 -0
- data/ext/iup-mswin32/include/im_math_op.h +214 -0
- data/ext/iup-mswin32/include/im_palette.h +172 -0
- data/ext/iup-mswin32/include/im_plus.h +73 -0
- data/ext/iup-mswin32/include/im_process.h +36 -0
- data/ext/iup-mswin32/include/im_process_ana.h +222 -0
- data/ext/iup-mswin32/include/im_process_glo.h +170 -0
- data/ext/iup-mswin32/include/im_process_loc.h +608 -0
- data/ext/iup-mswin32/include/im_process_pon.h +734 -0
- data/ext/iup-mswin32/include/im_raw.h +34 -0
- data/ext/iup-mswin32/include/im_util.h +277 -0
- data/ext/iup-mswin32/include/imlua.h +75 -0
- data/ext/iup-mswin32/include/iup.h +364 -0
- data/ext/iup-mswin32/include/iup_pplot.h +40 -0
- data/ext/iup-mswin32/include/iupcb.h +1 -0
- data/ext/iup-mswin32/include/iupcbox.h +1 -0
- data/ext/iup-mswin32/include/iupcbs.h +43 -0
- data/ext/iup-mswin32/include/iupcells.h +1 -0
- data/ext/iup-mswin32/include/iupcolorbar.h +1 -0
- data/ext/iup-mswin32/include/iupcontrols.h +46 -0
- data/ext/iup-mswin32/include/iupdef.h +725 -0
- data/ext/iup-mswin32/include/iupdial.h +1 -0
- data/ext/iup-mswin32/include/iupgauge.h +1 -0
- data/ext/iup-mswin32/include/iupgc.h +1 -0
- data/ext/iup-mswin32/include/iupgetparam.h +1 -0
- data/ext/iup-mswin32/include/iupgl.h +96 -0
- data/ext/iup-mswin32/include/iupim.h +27 -0
- data/ext/iup-mswin32/include/iupkey.h +457 -0
- data/ext/iup-mswin32/include/iuplua.h +41 -0
- data/ext/iup-mswin32/include/iuplua_pplot.h +26 -0
- data/ext/iup-mswin32/include/iupluacontrols.h +27 -0
- data/ext/iup-mswin32/include/iupluagl.h +26 -0
- data/ext/iup-mswin32/include/iupluaim.h +26 -0
- data/ext/iup-mswin32/include/iupluaole.h +26 -0
- data/ext/iup-mswin32/include/iupmask.h +41 -0
- data/ext/iup-mswin32/include/iupmatrix.h +1 -0
- data/ext/iup-mswin32/include/iupole.h +24 -0
- data/ext/iup-mswin32/include/iupsbox.h +1 -0
- data/ext/iup-mswin32/include/iupspin.h +1 -0
- data/ext/iup-mswin32/include/iuptabs.h +1 -0
- data/ext/iup-mswin32/include/iuptree.h +1 -0
- data/ext/iup-mswin32/include/iupval.h +1 -0
- data/ext/iup-mswin32/include/old_im.h +59 -0
- data/ext/iup-mswin32/include/wd.h +83 -0
- data/ext/iup-mswin32/include/wd_old.h +85 -0
- data/ext/iup-mswin32/iup.lib +0 -0
- data/ext/iup-mswin32/iup_pplot.lib +0 -0
- data/ext/iup-mswin32/iupcd.lib +0 -0
- data/ext/iup-mswin32/iupcontrols.lib +0 -0
- data/ext/iup-mswin32/iupgl.lib +0 -0
- data/ext/iup-mswin32/iupgtk.lib +0 -0
- data/ext/iup-mswin32/iupim.lib +0 -0
- data/ext/{iup-win32/iupimglib.dll → iup-mswin32/iupimglib.lib} +0 -0
- data/ext/iup-mswin32/iupole.lib +0 -0
- data/ext/iup-mswin32/pdflib.lib +0 -0
- data/ext/iup.c +6 -37
- data/ext/{rb_cd.h → rb_cd.c} +300 -302
- data/ext/rb_iup.c +2485 -0
- data/ext/rb_iup.h +400 -2475
- data/ext/{rb_iup_pplot.h → rb_iup_pplot.c} +21 -22
- data/ext/{rb_iupcb.h → rb_iupcb.c} +2 -3
- data/ext/{rb_iupcells.h → rb_iupcells.c} +5 -5
- data/ext/{rb_iupcolorbar.h → rb_iupcolorbar.c} +2 -3
- data/ext/{rb_iupcontrols.h → rb_iupcontrols.c} +1 -1
- data/ext/{rb_iupdial.h → rb_iupdial.c} +3 -4
- data/ext/{rb_iupgauge.h → rb_iupgauge.c} +2 -3
- data/ext/{rb_iupgc.h → rb_iupgc.c} +1 -1
- data/ext/{rb_iupgetparam.h → rb_iupgetparam.c} +12 -10
- data/ext/{rb_iupgl.h → rb_iupgl.c} +10 -10
- data/ext/{rb_iupim.h → rb_iupim.c} +6 -6
- data/ext/{rb_iupmatrix.h → rb_iupmatrix.c} +15 -16
- data/ext/{rb_iupole.h → rb_iupole.c} +4 -4
- data/ext/{rb_iupsbox.h → rb_iupsbox.c} +3 -3
- data/ext/{rb_iupspin.h → rb_iupspin.c} +4 -5
- data/ext/{rb_iuptabs.h → rb_iuptabs.c} +5 -6
- data/ext/{rb_iuptree.h → rb_iuptree.c} +20 -21
- data/ext/{rb_iupval.h → rb_iupval.c} +3 -4
- data/ruby-iup.gemspec +26 -0
- data/test/test_ruby_iup.rb +25 -0
- metadata +395 -270
- data/ext/iup-linux/include/lauxlib.h +0 -174
- data/ext/iup-linux/include/lua.h +0 -388
- data/ext/iup-linux/include/lua.hpp +0 -9
- data/ext/iup-linux/include/luaconf.h +0 -763
- data/ext/iup-linux/include/lualib.h +0 -53
- data/ext/iup-linux/libcd.so +0 -0
- data/ext/iup-linux/libcdcontextplus.so +0 -0
- data/ext/iup-linux/libcdpdf.so +0 -0
- data/ext/iup-linux/libfreetype.so +0 -0
- data/ext/iup-linux/libim.so +0 -0
- data/ext/iup-linux/libim_fftw.so +0 -0
- data/ext/iup-linux/libim_jp2.so +0 -0
- data/ext/iup-linux/libim_process.so +0 -0
- data/ext/iup-linux/libiup.so +0 -0
- data/ext/iup-linux/libiup_pplot.so +0 -0
- data/ext/iup-linux/libiupcd.so +0 -0
- data/ext/iup-linux/libiupcontrols.so +0 -0
- data/ext/iup-linux/libiupgl.so +0 -0
- data/ext/iup-linux/libiupim.so +0 -0
- data/ext/iup-linux/libiupimglib.so +0 -0
- data/ext/iup-linux/libiupmot.so +0 -0
- data/ext/iup-linux/libpdflib.so +0 -0
- data/ext/iup-win32/cd.dll +0 -0
- data/ext/iup-win32/cd.lib +0 -0
- data/ext/iup-win32/cdcontextplus.dll +0 -0
- data/ext/iup-win32/cdcontextplus.lib +0 -0
- data/ext/iup-win32/cdpdf.dll +0 -0
- data/ext/iup-win32/cdpdf.lib +0 -0
- data/ext/iup-win32/freetype6.dll +0 -0
- data/ext/iup-win32/freetype6.lib +0 -0
- data/ext/iup-win32/im.dll +0 -0
- data/ext/iup-win32/im.lib +0 -0
- data/ext/iup-win32/im_avi.dll +0 -0
- data/ext/iup-win32/im_avi.lib +0 -0
- data/ext/iup-win32/im_capture.dll +0 -0
- data/ext/iup-win32/im_capture.lib +0 -0
- data/ext/iup-win32/im_ecw.dll +0 -0
- data/ext/iup-win32/im_fftw.dll +0 -0
- data/ext/iup-win32/im_fftw.lib +0 -0
- data/ext/iup-win32/im_jp2.dll +0 -0
- data/ext/iup-win32/im_jp2.lib +0 -0
- data/ext/iup-win32/im_process.dll +0 -0
- data/ext/iup-win32/im_process.lib +0 -0
- data/ext/iup-win32/im_wmv.dll +0 -0
- data/ext/iup-win32/im_wmv.lib +0 -0
- data/ext/iup-win32/imlua_capture51.dll +0 -0
- data/ext/iup-win32/imlua_capture51.lib +0 -0
- data/ext/iup-win32/imlua_wmv51.dll +0 -0
- data/ext/iup-win32/imlua_wmv51.lib +0 -0
- data/ext/iup-win32/include/iupcb.h +0 -25
- data/ext/iup-win32/include/iupcells.h +0 -130
- data/ext/iup-win32/include/iupcolorbar.h +0 -126
- data/ext/iup-win32/include/iupcontrols.h +0 -36
- data/ext/iup-win32/include/iupdial.h +0 -63
- data/ext/iup-win32/include/iupgauge.h +0 -57
- data/ext/iup-win32/include/iupgetparam.h +0 -27
- data/ext/iup-win32/include/iupmatrix.h +0 -63
- data/ext/iup-win32/include/iupspin.h +0 -21
- data/ext/iup-win32/include/iuptabs.h +0 -75
- data/ext/iup-win32/include/iuptree.h +0 -93
- data/ext/iup-win32/include/iupval.h +0 -46
- data/ext/iup-win32/iup.dll +0 -0
- data/ext/iup-win32/iup.lib +0 -0
- data/ext/iup-win32/iup_pplot.dll +0 -0
- data/ext/iup-win32/iup_pplot.lib +0 -0
- data/ext/iup-win32/iupcd.dll +0 -0
- data/ext/iup-win32/iupcd.lib +0 -0
- data/ext/iup-win32/iupcontrols.dll +0 -0
- data/ext/iup-win32/iupcontrols.lib +0 -0
- data/ext/iup-win32/iupgl.dll +0 -0
- data/ext/iup-win32/iupgl.lib +0 -0
- data/ext/iup-win32/iupgtk.dll +0 -0
- data/ext/iup-win32/iupgtk.lib +0 -0
- data/ext/iup-win32/iupim.dll +0 -0
- data/ext/iup-win32/iupim.lib +0 -0
- data/ext/iup-win32/iupimglib.lib +0 -0
- data/ext/iup-win32/iupole.dll +0 -0
- data/ext/iup-win32/iupole.lib +0 -0
- data/ext/iup-win32/iupstub.lib +0 -0
- data/ext/iup-win32/pdflib.dll +0 -0
- data/ext/iup-win32/pdflib.lib +0 -0
- data/ext/mkrf_conf.rb +0 -72
- data/ext/rb_iupcompat.h +0 -237
- data/ext/rb_iupdef.h +0 -3
- data/ext/rb_iupmask.h +0 -189
- 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
|