			.zip(data.chunks_exact_mut(PIXEL_BYTES))
		{
			let dest_alpha = dest[3];

			for (src, dest) in src.iter().zip(dest) {
				*dest = (*dest).saturating_add(
					((*src).conv::<u16>() * (u8::MAX - dest_alpha).conv::<u16>()
						/ u8::MAX.conv::<u16>())
					.try_conv::<u8>()
					.expect("infallible"),
				);
			}
		}