core: graphics: use saturating_add for copying images

High-level language skill issue :P
This commit is contained in:
Richard Acayan 2024-07-19 17:10:28 -04:00
parent c1c92c4d5e
commit 9ec712bb69

View file

@ -16,7 +16,6 @@ use core::rgb::alt::BGR;
use core::rgb::alt::BGRA;
use core::xkeysym::Keysym;
use std::collections::HashMap;
use std::convert::TryInto;
use std::fs::File;
use std::io::Read;
use std::iter;
@ -26,9 +25,9 @@ fn convert_gray_to_bgrx(mut dest: ImgRefMut<BGRA<u8>>, src: ImgRef<u8>, fg_color
{
for (dest, src) in iter::zip(dest.rows_mut(), src.rows()) {
for (dest, src) in iter::zip(dest, src) {
dest.r = ((dest.r as f32 + *src as f32 * fg_color.r) as u16).try_into().unwrap_or(255);
dest.g = ((dest.g as f32 + *src as f32 * fg_color.g) as u16).try_into().unwrap_or(255);
dest.b = ((dest.b as f32 + *src as f32 * fg_color.b) as u16).try_into().unwrap_or(255);
dest.r = dest.r.saturating_add((*src as f32 * fg_color.r) as u8);
dest.g = dest.g.saturating_add((*src as f32 * fg_color.g) as u8);
dest.b = dest.b.saturating_add((*src as f32 * fg_color.b) as u8);
}
}
}
@ -36,7 +35,7 @@ fn convert_gray_to_bgrx(mut dest: ImgRefMut<BGRA<u8>>, src: ImgRef<u8>, fg_color
fn copy_image(mut dest: ImgRefMut<u8>, src: ImgRef<u8>)
{
for (dest, src) in iter::zip(dest.pixels_mut(), src.pixels()) {
*dest = (src as u16 + *dest as u16).try_into().unwrap_or(255);
*dest = src.saturating_add(*dest);
}
}