core: graphics: use saturating_add for copying images
High-level language skill issue :P
This commit is contained in:
parent
c1c92c4d5e
commit
9ec712bb69
1 changed files with 4 additions and 5 deletions
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue