pub fn replace<P>(bottom: &Image<P>, top: &Image<P>, x: u32, y: u32) -> Image<P>
where
    P: Pixel,
{
    let mut bottom = bottom.clone();
    replace_mut(&mut bottom, top, x, y);
    bottom
}
Replaces the pixels in the `bottom` image with the pixels from the top image starting from the
given `(x, y)` coordinates in the `bottom` image and starting from `(0, 0)` in the `top` image.

# Panics

- If `x >= bottom.width()`
- If `y >= bottom.height()`

# Examples
```
use imageproc::compose::replace;
use imageproc::gray_image;

let bottom = gray_image!(
0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0);

let top = gray_image!(
1, 1;
1, 1;
1, 1);

let replaced = replace(&bottom, &top, 3, 1);

assert_eq!(replaced, gray_image!(
0, 0, 0, 0, 0, 0;
0, 0, 0, 1, 1, 0;
0, 0, 0, 1, 1, 0;
0, 0, 0, 1, 1, 0;
0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0));
```
src/compose.rs