summaryrefslogtreecommitdiff
path: root/html/en/storage.html
blob: 9edf5326a0c57bc09a8432af824ca7153c2643d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Storage</title>
<link rel="stylesheet" type="text/css" href="../style.css">
</head>

<body>

<h1>
    Image Storage</h1>

  <p>Essentially all the file formats save the same image data. There is no such 
  thing like a GIF image, instead we have a color indexed image that can be 
  saved in a file with a GIF format, or a TIFF format, etc. However the 
  compression encoding can be lossy and degrade the original image. The point is 
  file formats and image data are two different things.</p>
  <p>A file format is a file organization of the image data and its attributes. 
  The IM library model considers all the file formats under the same model, 
  including image, video, animation, stacks and volume file formats. When there 
  is more than one image each one is treated as an independent frame. Each frame 
  can have its own parameters and set of attributes.</p>
  <p>The abstract model we use has the following structure:</p>
  <div align="center">
    <center>
    <table border="1" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="300" id="AutoNumber1" cellpadding="3">
      <tr>
        <td align="center" bgcolor="#C0C0C0"><b>Format Identifier</b></td>
      </tr>
      <tr>
        <td align="center" bgcolor="#C0C0C0"><b>Compression</b></td>
      </tr>
      <tr>
        <td align="center" bgcolor="#C0C0C0"><b>Image Count</b></td>
      </tr>
      <tr>
        <td align="center" style="border-top-style: solid; border-top-width: 1" bgcolor="#FFFF99">
        Image Information:<br>
        parameters, attributes, palette</td>
      </tr>
      <tr>
        <td align="center" bgcolor="#FFFF99">Image Data</td>
      </tr>
      <tr>
        <td align="center" bgcolor="#FFFFCC">Image Information:<br>
        parameters, attributes, palette</td>
      </tr>
      <tr>
        <td align="center" bgcolor="#FFFFCC">Image Data</td>
      </tr>
      <tr>
        <td align="center" bgcolor="#FFFF99">...</td>
      </tr>
    </table>
    </center>
  </div>
  <p>The compression is usually the same for all the images in the file, but it 
  can be changed after loading an image. For tradicional file formats image 
  count is always 1. Image information must always be loaded or saved before 
  image data.</p>
  <p>We consider only formats that starts with a signature so we can recognize 
  the format without using its file extension. If there is more than one driver 
  that handles the same signature the first registered driver will open the 
  file. Since the internal drivers are automatically registered all the external 
  drivers can be loaded first if no <b>imFile</b> function has been called. In 
  this way you can also control which external driver goes first.</p>


</body>

</html>