| Prima Homepage ImaLab Generating C++ Modules User Manual The Command Shell Running Imalab Plugin Process Pixels and Images Interactive selection Graphics: plots, profiles Image file I/O Image display Connectivity Analysis Image Processing(1) Gaussian operators Technical Documentation Creating New Modules Tutorial Tutorial Download | Reading/writing image filesThree image file formats are supported for reading: jpeg, tiff, and ppm; mpeg images are read via a server-client architecture. For each image encoding, there are two read functions: one function that creates a new TBitmapABGR, one function to replace the image inside an existing TBitmapABGR object. The function screen-copy(nam)creates file nam with a copy of the current imalab-screen, according to the suffix of nam, which must be .jpg or .ppm ; for jpeg-format, an optional second parameter may specify compression (percentage: integer value between 1 and 100). Caution: with some versions of X11 the screen-window must be entirely visible on your display, otherwise a fatal X-error will show up... (should be corrected) The function write-ABGR(nam,bmp)writes TBitmapABGR bmp into file nam, according to the suffix of nam, which must be .jpg or .ppm ; TIFF filesThe function new-tiff(nam) creates a TBitmapABGR object with the image read from file nam. The function tiff-load(nam,bmp) loads the image from file nam into the existing TBitmapABGR object bmp, resizing if necessary. If you want to just have a look at a tiff-image, use the function show-tiff(nam) that displays the tiff-image in file nam on Imalab's screen (and creates the screen if necessary). Writing tiff files The function write-ABGR(bmp,nam)writes the TBitmapABGR-image in tiff-format to file nam. A copyright message appears, coming from the tiff-library functions. April 2003: writing tiff images no longer works because of patent problems (can we still write uncompressed tiff??). JPEG filesTwo functions are analogous to the tiff-functions: new-jpeg(nam) creates a new TBitmapABGR with the image in file nam. jpeg-load(nam,bmp) load image from file nam into the existing TBitmapABGR, resizing when necessary. Writing jpeg-files will be implemented on demand (needs just to interface the corresponding function in the jpeg-library). PPM filesTwo functions are analogous to the tiff-functions: new-ppm(nam) creates a new TBitmapABGR with the image in file nam. ppm-load(nam,bmp) load image from file nam into the existing TBitmapABGR, resizing when necessary. Writing ppm files is implemented via a specific class - example: tfd = new TBitmapFileDest("filename.ppm"); tfd << bmp: tfd.Close(); Details for screen copyWe've tried several X11 functions - and encountered errors we've never understood entirely. The current version of screen-copy just is a compromise that has the advantage to work correctly (though it probably is inefficient). screen.MakeCopy(0,0); // parameters: border width copy = new TBimapABGR(screen-width, screen-height,screen.GetCopy()); copy = new TBimapABGR(screen-width, screen-height,screen.CopyData()); We cannot write bmp.SetDataPtr(screen.GetCopy()) because there is no such method. |