Function splat_interlaced_row

Source
pub fn splat_interlaced_row(
    img: &mut [u8],
    img_row_stride: usize,
    interlaced_row: &[u8],
    interlace_info: &Adam7Info,
    bits_per_pixel: u8,
)
Expand description

Expand pass, but also ensure that after each pass the whole image has been initialized up to the data available. In constrast to expand_pass there are no holes left in the image.

For instance, consider the first pass which is an eighth subsampling of the original image. Here’s a side by-side of pixel data written from each of the two algorithms:

normal:   splat:
1-------  11111111
--------  11111111
--------  11111111
--------  11111111
--------  11111111
--------  11111111
--------  11111111

Data written in previous passes must not be modified. We ‘weave’ the data of passes and repeat them in the neighbouring pixels until their subsampling alignment. For details, see the x_repeat and y_repeat data. Thus the 4th pass would look like this:

normal:   splat:
--4---4-  --44--44
--------  --44--44
--------  --44--44
--4---4-  --44--44
--------  --44--44
--------  --44--44
--------  --44--44