fn decode_component<R: Read, S: FnMut(usize, u8)>(
    r: &mut R,
    width: usize,
    set_component: S
) -> ImageResult<()>