Raster image I/O: Difference between revisions
New page: ==Converting raster images to RSF files== One option is sfjpg2byte. It requires the JPEG library to be present at the compilation time. <bash> < lena.jpg sfjpg2byte | sfdd type=float > len... |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
==Converting raster images to RSF files== | ==Converting raster images to RSF files== | ||
One option is sfjpg2byte. It requires the JPEG library to be present at the compilation time. | One option is <tt>sftif2byte</tt> or <tt>sfjpg2byte</tt>. It requires the TIFF or JPEG library, respectively, to be present at the compilation time. | ||
<bash> | |||
< lena.tif sftif2byte | sfdd type=float > lena.rsf | |||
</bash> | |||
<bash> | <bash> | ||
< lena.jpg sfjpg2byte | sfdd type=float > lena.rsf | < lena.jpg sfjpg2byte | sfdd type=float > lena.rsf | ||
</bash> | </bash> | ||
Another option is to use the convert utility from [http://www.imagemagick.org ImageMagick]. For a | Another option is to use the <tt>convert</tt> utility from [http://www.imagemagick.org ImageMagick]. For a grayscale image: | ||
<bash> | <bash> | ||
< lena.jpg convert - lena.gray | < lena.jpg convert - lena.gray | ||
Line 12: | Line 15: | ||
<bash> | <bash> | ||
< lena.jpg convert - lena.rgb | < lena.jpg convert - lena.rgb | ||
echo in=lena.rgb data_format=native_uchar n1=3 n2=512 n3=512 | sfdd type=float > lena.rsf | echo in=lena.rgb data_format=native_uchar n1=3 n2=512 n3=512 | sfdd type=float > lena.rsf | ||
# Red component: | |||
< lena_rgb.rsf sfwindow n1=1 f1=0 > lena_red.rsf | |||
# Green: | |||
< lena_rgb.rsf sfwindow n1=1 f1=1 > lena_green.rsf | |||
# Blue: | |||
< lena_rgb.rsf sfwindow n1=1 f1=2 > lena_blue.rsf | |||
</bash> | </bash> | ||
==Converting RSF 2-D data to raster images== | ==Converting RSF 2-D data to raster images== | ||
If Madagascar has been compiled with TIFF support, <tt>sfbyte2tif</tt> can be used: | |||
<bash> | |||
< model.rsf sfbyte | sfbyte2tif > model.tif | |||
</bash> | |||
If Madagascar has been compiled with JPEG support, <tt>sfbyte2jpg</tt> can be used: | If Madagascar has been compiled with JPEG support, <tt>sfbyte2jpg</tt> can be used: | ||
<bash> | <bash> | ||
Line 26: | Line 42: | ||
transp | # Make data in row-major order | transp | # Make data in row-major order | ||
byte gainpanell=all allpos=y | # Convert data to byte representation | byte gainpanell=all allpos=y | # Convert data to byte representation | ||
disfil col=1 format="%02X" | # Dump data in one column in ASCII-hex | disfil col=1 number=n format="%02X" | # Dump data in one column in ASCII-hex | ||
xxd -r -p # Read ASCII output and convert it to binary form | xxd -r -p # Read ASCII output and convert it to binary form | ||
''') | ''') |
Latest revision as of 01:16, 13 August 2011
Converting raster images to RSF files[edit]
One option is sftif2byte or sfjpg2byte. It requires the TIFF or JPEG library, respectively, to be present at the compilation time. <bash> < lena.tif sftif2byte | sfdd type=float > lena.rsf </bash> <bash> < lena.jpg sfjpg2byte | sfdd type=float > lena.rsf </bash> Another option is to use the convert utility from ImageMagick. For a grayscale image: <bash> < lena.jpg convert - lena.gray echo in=lena.gray data_format=native_uchar n1=512 n2=512 | sfdd type=float > lena.rsf </bash> or, for a color image: <bash> < lena.jpg convert - lena.rgb
echo in=lena.rgb data_format=native_uchar n1=3 n2=512 n3=512 | sfdd type=float > lena.rsf
- Red component:
< lena_rgb.rsf sfwindow n1=1 f1=0 > lena_red.rsf
- Green:
< lena_rgb.rsf sfwindow n1=1 f1=1 > lena_green.rsf
- Blue:
< lena_rgb.rsf sfwindow n1=1 f1=2 > lena_blue.rsf </bash>
Converting RSF 2-D data to raster images[edit]
If Madagascar has been compiled with TIFF support, sfbyte2tif can be used: <bash> < model.rsf sfbyte | sfbyte2tif > model.tif </bash> If Madagascar has been compiled with JPEG support, sfbyte2jpg can be used: <bash> < model.rsf sfbyte | sfbyte2jpg > model.jpg </bash> Then, another program can be used to convert the JPEG file to another format. If ImageMagick is present, it can be used to convert a RSF binary to almost any image format. In a SConstruct, the workflow would look like: <python> Flow('data.gray','data',
transp | # Make data in row-major order byte gainpanell=all allpos=y | # Convert data to byte representation disfil col=1 number=n format="%02X" | # Dump data in one column in ASCII-hex xxd -r -p # Read ASCII output and convert it to binary form )
Flow('data.png','data.gray',
convert -size %dx%d -depth 8 ${SOURCES[0]} ${TARGETS[0]} # Run ImageMagick % (n2, n1), stdin=0, stdout=0)
</python>
To output to another format, just change the extension in the last Flow() from .png to .gif or .jpg, for example. Create the output simply by running: scons data.png