File tree Expand file tree Collapse file tree 1 file changed +13
-0
lines changed Expand file tree Collapse file tree 1 file changed +13
-0
lines changed Original file line number Diff line number Diff line change 3
3
use crate :: helpers;
4
4
use crate :: PhotonImage ;
5
5
use image:: DynamicImage :: ImageRgba8 ;
6
+ use image:: { GenericImage , GenericImageView , Pixel } ;
6
7
use std:: cmp:: min;
7
8
8
9
#[ cfg( feature = "enable_wasm" ) ]
@@ -17,6 +18,18 @@ fn conv(photon_image: &mut PhotonImage, kernel: Kernel) {
17
18
let mut filtered_img = img. filter3x3 ( & kernel) ;
18
19
filtered_img = ImageRgba8 ( filtered_img. to_rgba8 ( ) ) ;
19
20
21
+ if filtered_img. pixels ( ) . all ( |p| p. 2 [ 3 ] == 0 ) {
22
+ for x in 0 ..GenericImageView :: width ( & img) - 1 {
23
+ for y in 0 ..GenericImageView :: height ( & img) - 1 {
24
+ let mut pixel = GenericImageView :: get_pixel ( & filtered_img, x, y) ;
25
+ let original_alpha =
26
+ GenericImageView :: get_pixel ( & img, x, y) . channels ( ) [ 3 ] ;
27
+ pixel. channels_mut ( ) [ 3 ] = original_alpha;
28
+ filtered_img. put_pixel ( x, y, pixel) ;
29
+ }
30
+ }
31
+ }
32
+
20
33
photon_image. raw_pixels = filtered_img. to_bytes ( ) ;
21
34
}
22
35
You can’t perform that action at this time.
0 commit comments