April 28, 1999
In the ongoing battle against slow download speeds, many Web developers splice
large images into several smaller pieces and then re-assemble them into
an HTML table. Image splicing is a popular technique and has many advantages.
While slicing up large images can dramatically improve the download
time of your pages, large spliced images can lose integrity, or "break",
when viewed through a WebTV browser. In the extreme example below, basic
image integrity has been lost.
Note: Image breaking can only occur in spliced images - normal
JPEGs and GIFs will never exhibit the behavior below.
The good news is that it takes only a few small additions to your code
to rehabilitate these broken images, without visible differences in
other browsers. This article will cover the basics of making sure that
your spliced images display well on a WebTV browser.
Figure 1 - A spliced image can lose integrity

Figure 2 - Same image - still spliced - with a few
adjustments

The spliced image in Figure 1 has broken apart instead of re-assembling
properly in its table. Pieces seem randomly scattered around. The way
in which this image broke, however, is not random at all, and is easy
to avoid once we understand a little bit more about how the WebTV browser
optimizes tables for display on television.
Horizontal Real Estate on Television
Televisions have a smaller
screen resolution than computer monitors, and the WebTV browser does not
allow horizontal scrollbars. This means that all Web page content must be compressed
or otherwise made to fit in a 544 pixel-wide space. The WebTV browser applies
different rules to do this as gracefully as possible, but problems can sometimes
arise.
HTML text is never compressed with the WebTV browser. Text
will be "re-flowed" to fit the space it is allotted, but
the size of the HTML text will never change. Conversely, single images
will be compressed as much as is necessary to make them fit into a 544
pixel-wide space; there isn't any other option.
Once multiple images are placed inside of a table, as is done in image splicing,
things get more complex. Wrapping a table row to the line below is an
option, and might be preferable if the enclosed images are in danger
of being compressed to the point of illegibility. Wrapping, unfortunately,
harms the linear integrity of the table, and should be used only as
a last resort.
Scenarios For Table Compression
In order to make the best decision - to wrap or to compress - the WebTV
browser applies a few intuitive rules when deciding how to present table data
in a narrower space. If a table row is wider than 544 pixels, the browser must
decide whether to wrap the row or compress the images. There are three possible
scenarios for shrinking table rows; behavior will be different in each.
Rule One: Images that are stored in separate cells within a table row
will never wrap to the next line. The browser will compress all the images in a table row as
much as needed to fit on the screen.
Example:
<TABLE name="No_Wrap_Table">
<TR>
<TD>
<IMG src="Big_Image1">
</TD>
<TD>
<IMG src="Big_Image2">
</TD>
<TD>
<IMG src="Big_Image3">
</TD>
</TR>
</TABLE>
Rule Two: When images are in the same table cell, but are either:
- enclosed by <NOBR> tags, or
- within a table or cell with an explicit width,
the WebTV browser will attempt to fit the images on the same line by compressing
cells to 80% of their original size, and wrapping any cells to the next
line that still don't fit on the screen.
Example:
<TABLE name="Compress_Then_Wrap_Table">
<TR>
<TD width=600>
<NOBR>
<IMG src="Big_Image1">
<IMG src="Big_Image2">
<IMG src="Big_Image3">
</NOBR>
</TD>
</TR>
</TABLE>
Rule Three: If images are in the same table cell, and explicit
width or <NOBR> tags are not present, the WebTV browser will wrap
all images to the next line that don't fit in a 544 pixel-wide table
row.
Example:
<TABLE name="Wrap_And_Do_Not_Compress_Table">
<TR>
<TD>
<IMG src="Big_Image1">
<IMG src="Big_Image2">
<IMG src="Big_Image1">
</TD>
</TR>
</TABLE>
These rules for table row wrapping attempt to anticipate the desire
of the author. If adjacent images are not in separate cells, then the
author's intent is probably not precise layout, but rather presentation.
In that case, legibility is paramount and the images will not be compressed
to more than 80% of their original size, even if that means wrapping
the content of the cell to the next line. If, on the other hand, images
are in distinct cells, layout is probably just as important as
content, and table integrity must be maintained.