# Graphics

### Basic Image Support

In a separate paragraph, default (left):

In a separate paragraph, center:

In a separate paragraph, right:

Currently only GIFs (above) support transparency.

A PNG (with alphachannel) below:

### Image Preparation

#### Source Images

Maximum specifications: 472x595 pixels, 16-bit color, 8-bit grayscale. Note that the REB1200 display only supports 15-bit color.

Fileformat: can be PNG or JPG, but the source filesize (JPGs tend to be smaller than the non-lossy PNGs) is not reflected in the final filesize (see below). Note that JPGs take longer to be processed, probably being internally converted to PNGs anyway.

#### IMP file creation

Preferences are defined in the OPF file. The most important setting for files with a lot of images is the 'RLE-trigger' setting. I did a number of tests with very large (20-30Mb) 'photo albums', without coming to a definite conclusion.

My best shot: it really seems to be a trigger, i.e. there is a 'compressed state' and an 'uncompressed state', either one of which will be similar in filesize (a few Kb difference for a 30Mb file) regardless of differing RLE-trigger settings. A setting of '25' always generates an uncompressed file, while a setting greater than 100 always generates a compressed file.

I noticed that when 16-bit color images were converted to 8-bit color (256 color, 'paletted mode'), the resulting filesize was fairly similar (a bit less though), but the display-speed on the REB1200 was noticeably faster. Grayscale yielded noticeably better compression results (2/3 of the uncompressed version) than all-color images (4/5 - 3/4 at best).

#### Miscellaneous

If GIF files are used in the source, SBpublisher will create a 'OEB-Fallbacks' directory in the source folder, with a PNG version (with unique ID) of each GIF everytime you run it, i.e. you end up with a directory full of copies of the same file if you do frequent test-compilations.

Note that in the OPF file, the "spine" part must NOT contain an ID referring to an image resource (causing a fatal error in SBpublisher, which took me a while to figure out).

The 'object type="image/png"' syntax is supported, but in context not very useful, and just means more typing.

#### On the next page: a fullsize image

(Using "class=FullPagePicture") Note the banding, which suggests severe color-reduction of the true-color original. The default OPF setting used for this file generates an uncompressed file (max. filesize) It is more noticeable on the PC viewer than the actual device, especially in grayscale.

#### Following the first image: a 256 color version

This version was color-reduced at the source. In this case, the result looks better than the generated version. I have also tried it on graphics rather than photos, and sometimes the generated version looked better.

It seems though, for all practical intents and purposes, that the result is essentially 256 color out of ~16000 (15-bit). It is unclear whether that is due to REB1200 display limitations, or the SBpublisher image-generating code.

This is it buster!

Maybe so!

This any better?

Maybe so!

### Textflow around Images

#### Default behaviour:

Random test text designed to test the flow around an object. I think we need a some more test to make sure of the way the flow continues below the object. Hmm, we need just a more still, but I really hope that by adding another line it should most definetely be enough.

#### Image aligned to the right:

Random test text designed to test the flow around an object. I think we need a little more test to make sure of the way the flow continues below the object. Hmm, we need just a little more still, but I really hope that by adding another line it should most definetely be enough.

#### Image aligned to the left:

Random test text designed to test the flow around an object. I think we need a little more test to make sure of the way the flow continues below the object. Hmm, we need just a little more still, but I really hope that by adding another line it should most definetely be enough.

#### Image aligned to the top:

Random test text designed to test the flow around an object. I think we need a little more test to make sure of the way the flow continues below the object. Hmm, we need just a little more still, but I really hope that by adding another line it should most definetely be enough.

#### Justified blockquote, Image aligned to the left:

> Random test text designed to test the flow around an object. I think we need a little more test to make sure of the way the flow continues below the object. Hmm, we need just a little more still, but I really hope that by adding another line it should most definetely be enough.

#### Like above, but a &zwnj; paragraph inbetween:

‌

> Random test text designed to test the flow around an object. I think we need a little more test to make sure of the way the flow continues below the object. Hmm, we need just a little more still, but I really hope that by adding another line it should most definetely be enough.

Note the difference from one without the 'empty' paragraph.

### Image Alignment

Using tables, handy for split images as a replacement for the missing image-map functionality.

### Using color

#### In General

Defining a color by it's RGB value is not supported, instead use it's hexadecimal value. You can only use it's name when using 'style="color:black"', but not when simply using 'color="black"'.

If you use 'bgcolor' in the 'body' tag of ANY ONE of several linked documents, the ENTIRE resulting document will be that color. See more on on 'bgcolor' below.

The 'style="background-color: xxx; color: xxx"' seems to always work, and is recommended over 'bgcolor'.

#### Basic Text

In a regular paragraph, you can only define the text color, but not the background color. Either you define one background color for the entire document (see above), or you 'fake' text background color by wrapping it all in a table (see next).

#### Tables

The 'bgcolor' attribute works only in 'td' and 'th' (and 'body').

The 'tr' tag doesn't seem to accept any color attribute.

eBook Reader Devices
Year | Device | Video Spec
--- | --- | ---
2000 | REB1200 | 480x640 15bit
REB1100 | 320x480 1bit
2002 | New Palm Zire | 160x160 1bit

### Websafe Colors:

FFF FFF | CCC CCC | 999 999 | 666 666 | 333 333 | 000 000 | FFC C00 | FF9 900 | FF6 600 | FF3 300 |
99C C00 |  | CC9 900 | FFC C33 | FFC C66 | FF9 966 | FF6 633 | CC3 300 |  | CC0 033
CCF F00 | CCF F33 | 333 300 | 666 600 | 999 900 | CCC C00 | FFF F00 | CC9 933 | CC6 633 | 330 000 | 660 000 | 990 000 | CC0 000 | FF0 000 | FF3 366 | FF0 033
99F F00 | CCF F66 | 99C C33 | 666 633 | 999 933 | CCC C33 | FFF F33 | 996 600 | 993 300 | 663 333 | 993 333 | CC3 333 | FF3 333 | CC3 366 | FF6 699 | FF0 066
66F F00 | 99F F66 | 66C C33 | 669 900 | 999 966 | CCC C66 | FFF F66 | 996 633 | 663 300 | 996 666 | CC6 666 | FF6 666 | 990 033 | CC3 399 | FF6 6CC | FF0 099
33F F00 | 66F F33 | 339 900 | 66C C00 | 99F F33 | CCC C99 | FFF F99 | CC9 966 | CC6 600 | CC9 999 | FF9 999 | FF3 399 | CC0 066 | 990 066 | FF3 3CC | FF0 0CC
00C C00 | 33C C00 | 336 600 | 669 933 | 99C C66 | CCF F99 | FFF FCC | FFC C99 | FF9 933 | FFC CCC | FF9 9CC | CC6 699 | 993 366 | 660 033 | CC0 099 | 330 033
33C C33 | 66C C66 | 00F F00 | 33F F33 | 66F F66 | 99F F99 | CCF FCC |  | CC9 9CC | 996 699 | 993 399 | 990 099 | 663 366 | 660 066
006 600 | 336 633 | 009 900 | 339 933 | 669 966 | 99C C99 |  | FFC CFF | FF9 9FF | FF6 6FF | FF3 3FF | FF0 0FF | CC6 6CC | CC3 3CC
003 300 | 00C C33 | 006 633 | 339 966 | 66C C99 | 99F FCC | CCF FFF | 339 9FF | 99C CFF | CCC CFF | CC9 9FF | 996 6CC | 663 399 | 330 066 | 990 0CC | CC0 0CC
00F F33 | 33F F66 | 009 933 | 00C C66 | 33F F99 | 99F FFF | 99C CCC | 006 6CC | 669 9CC | 999 9FF | 999 9CC | 993 3FF | 660 0CC | 660 099 | CC3 3FF | CC0 0FF
00F F66 | 66F F99 | 33C C66 | 009 966 | 66F FFF | 66C CCC | 669 999 | 003 366 | 336 699 | 666 6FF | 666 6CC | 666 699 | 330 099 | 993 3CC | CC6 6FF | 990 0FF
00F F99 | 66F FCC | 33C C99 | 33F FFF | 33C CCC | 339 999 | 336 666 | 006 699 | 003 399 | 333 3FF | 333 3CC | 333 399 | 333 366 | 663 3CC | 996 6FF | 660 0FF
00F FCC | 33F FCC | 00F FFF | 00C CCC | 009 999 | 006 666 | 003 333 | 339 9CC | 336 6CC | 000 0FF | 000 0CC | 000 099 | 000 066 | 000 033 | 663 3FF | 330 0FF
00C C99 |  | 009 9CC | 33C CFF | 66C CFF | 669 9FF | 336 6FF | 003 3CC |  | 330 0CC
| 00C CFF | 009 9FF | 006 6FF | 003 3FF |

This concludes the Graphics chapter.