@@ -1013,7 +1013,7 @@ where
10131013     /// 
10141014     /// Returns an [`ImageError::Parameter`] if the mask dimensions do not match the image 
10151015     /// dimensions. Otherwise, if the pixel type does not have an alpha channel this is a no-op. 
1016-      pub  fn  apply_alpha_mask < RhsContainer > ( 
1016+      pub  fn  apply_alpha_channel < RhsContainer > ( 
10171017        & mut  self , 
10181018        mask :  & ImageBuffer < Luma < P :: Subpixel > ,  RhsContainer > , 
10191019    )  -> ImageResult < ( ) > 
@@ -2190,6 +2190,44 @@ mod test {
21902190        let  mask = image. to_alpha_mask ( ) ; 
21912191        assert_eq ! ( mask. as_raw( ) ,  & ( 1u8 ..17 ) . collect:: <Vec <_>>( ) ) ; 
21922192    } 
2193+ 
2194+     #[ test]  
2195+     fn  apply_alpha_mask ( )  { 
2196+         let  mut  image:  ImageBuffer < LumaA < u8 > ,  _ >  = ImageBuffer :: new ( 4 ,  4 ) ; 
2197+ 
2198+         let  alpha = ImageBuffer :: from_pixel ( 4 ,  4 ,  Luma ( [ 255 ] ) ) ; 
2199+         image. apply_alpha_channel ( & alpha) . expect ( "can apply" ) ; 
2200+ 
2201+         for  pixel in  image. pixels ( )  { 
2202+             assert_eq ! ( pixel. 0 ,  [ 0 ,  255 ] ) ; 
2203+         } 
2204+     } 
2205+ 
2206+     #[ test]  
2207+     fn  apply_alpha_mask_rgb ( )  { 
2208+         let  mut  image:  ImageBuffer < Rgba < u8 > ,  _ >  = ImageBuffer :: new ( 4 ,  4 ) ; 
2209+ 
2210+         let  alpha = ImageBuffer :: from_pixel ( 4 ,  4 ,  Luma ( [ 255 ] ) ) ; 
2211+         image. apply_alpha_channel ( & alpha) . expect ( "can apply" ) ; 
2212+ 
2213+         for  pixel in  image. pixels ( )  { 
2214+             assert_eq ! ( pixel. 0 ,  [ 0 ,  0 ,  0 ,  255 ] ) ; 
2215+         } 
2216+     } 
2217+ 
2218+     #[ test]  
2219+     fn  can_not_apply_alpha_mask ( )  { 
2220+         ImageBuffer :: < LumaA < u8 > ,  _ > :: new ( 4 ,  4 ) 
2221+             . apply_alpha_channel ( & ImageBuffer :: new ( 1 ,  1 ) ) 
2222+             . expect_err ( "can not apply with wrong dimensions" ) ; 
2223+ 
2224+         ImageBuffer :: < Luma < u8 > ,  _ > :: new ( 4 ,  4 ) 
2225+             . apply_alpha_channel ( & ImageBuffer :: new ( 4 ,  4 ) ) 
2226+             . expect_err ( "can not apply without alpha channel" ) ; 
2227+         ImageBuffer :: < Rgb < u8 > ,  _ > :: new ( 4 ,  4 ) 
2228+             . apply_alpha_channel ( & ImageBuffer :: new ( 4 ,  4 ) ) 
2229+             . expect_err ( "can not apply without alpha channel" ) ; 
2230+     } 
21932231} 
21942232
21952233#[ cfg( test) ]  
0 commit comments