Skip to content

Latest commit

 

History

History
 
 

doc

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
----------------------------------------------------------------
X3F tools is a library for accessing Sigma X3F raw image files
----------------------------------------------------------------

The code understands  the old format for SD9, SD10  and SD14. The code
also understands the new format introduced with DP1. The latter format
is associated with the TRUE engines TRUE I and TRUE II.

----------------------------------------------------------------
Included in the library are two tools
  x3f_extract    A tool that extracts JPEG thumbnail and raw images.
                 See below for usage.
  x3f_io_test    A tool that prints some meta data and tests that
                 the code is working properly. This tool is not
                 made to be user friendly. Its mainly a test
                 tool for developing the code. This tool can
                 also write x3f files. They should (with this
                 tool) be identical to the origanal file.
                 See below for usage.
----------------------------------------------------------------

----------------------------------------------------------------
Executables
----------------------------------------------------------------

It  is a  fair  chance that  you  can find  pre  built executables  on
http://www.proxel.se/x3f.html.

----------------------------------------------------------------
Building
----------------------------------------------------------------

You are  supposed to have installed  gcc (and gmake)  on your machine.
On Windows this currently (2010) means mingw.

The command "make" builds the executables.

The makefile  tries to find out  what platform you are  on. This might
fail if your system has unexpected properties. In this case you are on
your own and have to hack the makefile file.

----------------------------------------------------------------
Usage of the x3f_extract tool
----------------------------------------------------------------

The tool can be used thus:

(1) x3f_extract -raw file.x3f
(2) x3f_extract -tiff file.x3f
(3) x3f_extract -tiff -gamma 2.2 [-min 0] [-max 5000] file.x3f
(4) x3f_extract -jpeg file.x3f
(5) x3f_extract -ppm file.x3f
(6) x3f_extract -ppm -gamma 2.2 [-min 0] [-max 5000] file.x3f

(1) dumps the  data block of the RAW image  verbatim. The original RAW
    data is not parsed or  interpreted and is therefore for almost all
    aspects useless. Mainly used for analyzing a new unknown format.

(2) parses and interprets the RAW image data and then dumps the result
    as  a 16  bit TIFF  file (called  file.x3f.tif) without  doing any
    changes to the pixel values.

    NOTE - if  you load this TIFF file in e.g.  Photoshop - the result
    is a very dark (almost  black) image. This image needs scaling and
    gamma coding to look good.

    NOTE -  the result is  not a  regular RGB image  - its in  the X3F
    "color space" - so it contains faulty colors.

(3) is the same as (2) but it scales the image according to
    a min, a max and a gamma value. If the min and max values are not
    given then they are estimated.

    NOTE  - the  current  code does  not  really know  how to  compute
    the correct min and max values. Its recommended to set it yourself
    - a guess is that max might be between 5000 and 10000. The program
    writes the min and max value it finds. If you are outside the range,
    the value is clipped.

(4) dumps the embedded JPEG thumbnail verbatim as file.x3f.jpg

(5) Same as (2) but output is binary 16 bit PPM

(6) Same as (3) but output is binary 16 bit PPM

    NOTE - this is not a JPEG of the RAW data.


----------------------------------------------------------------
Usage of the x3f_io_test tool
----------------------------------------------------------------

The tool can be used thus

(1) x3f_io_test file.x3f
(2) x3f_io_test file.x3f outfile1.x3f
(3) x3f_io_test file.x3f outfile1.x3f outfile2.x3f

(1) reads the file and parses  the main data structure of the file and
    then prints some info about it.  NOTE - no parsing of data blocks,
    e.g. image blocks, is made.

(2) same  as (1) but  also writes what  it reads to the  outfile.  The
    outfile1 shall be identical if the code is correct.

(3) Same  as (2) but  this code also  parses the data blocks  and then
    assembles a new file from the  parsed data blocks and writes it to
    oufile2.  The printouts  are written  twice -  before  parsing the
    blocks  and after.  The outfile2  also shall  be identical  to the
    original file if the code is correct.

    NOTE - detaled assembling of the blocks is not yet implemented, so
    the  assembling  is partly  phony.  Therefore  -  that oufile2  is
    identical does not say so much as it should.

    NOTE  - the printouts  contain CAMF  parameter names.  The current
    implementation stops  parsing CAMF when finding  something it does
    not understand. That might  be wrong. Therefore - parameters might
    be missing.

    NOTE - the actual contents of the CAMF parameters is not yet parsed.