@@ -897,34 +897,33 @@ fn choose_color_convert_func(component_count: usize,
897
897
fn color_convert_line_null ( _data : & mut [ u8 ] , _width : usize ) {
898
898
}
899
899
900
- fn color_convert_line_ycbcr ( data : & mut [ u8 ] , width : usize ) {
901
- for i in 0 .. width {
902
- let ( r, g, b) = ycbcr_to_rgb ( data[ i * 3 ] , data[ i * 3 + 1 ] , data[ i * 3 + 2 ] ) ;
903
-
904
- data[ i * 3 ] = r;
905
- data[ i * 3 + 1 ] = g;
906
- data[ i * 3 + 2 ] = b;
900
+ fn color_convert_line_ycbcr ( data : & mut [ u8 ] , _width : usize ) {
901
+ for chunk in data. chunks_exact_mut ( 3 ) {
902
+ let ( r, g, b) = ycbcr_to_rgb ( chunk[ 0 ] , chunk[ 1 ] , chunk[ 2 ] ) ;
903
+ chunk[ 0 ] = r;
904
+ chunk[ 1 ] = g;
905
+ chunk[ 2 ] = b;
907
906
}
908
907
}
909
908
910
- fn color_convert_line_ycck ( data : & mut [ u8 ] , width : usize ) {
911
- for i in 0 .. width {
912
- let ( r, g, b) = ycbcr_to_rgb ( data[ i * 4 ] , data[ i * 4 + 1 ] , data[ i * 4 + 2 ] ) ;
913
- let k = data[ i * 4 + 3 ] ;
909
+ fn color_convert_line_ycck ( data : & mut [ u8 ] , _width : usize ) {
910
+ for chunk in data. chunks_exact_mut ( 4 ) {
911
+ let ( r, g, b) = ycbcr_to_rgb ( chunk[ 0 ] , chunk[ 1 ] , chunk[ 2 ] ) ;
912
+ let k = chunk[ 3 ] ;
913
+ chunk[ 0 ] = r;
914
+ chunk[ 1 ] = g;
915
+ chunk[ 2 ] = b;
916
+ chunk[ 3 ] = 255 - k;
914
917
915
- data[ i * 4 ] = r;
916
- data[ i * 4 + 1 ] = g;
917
- data[ i * 4 + 2 ] = b;
918
- data[ i * 4 + 3 ] = 255 - k;
919
918
}
920
919
}
921
920
922
- fn color_convert_line_cmyk ( data : & mut [ u8 ] , width : usize ) {
923
- for i in 0 .. width {
924
- data [ i * 4 ] = 255 - data [ i * 4 ] ;
925
- data [ i * 4 + 1 ] = 255 - data [ i * 4 + 1 ] ;
926
- data [ i * 4 + 2 ] = 255 - data [ i * 4 + 2 ] ;
927
- data [ i * 4 + 3 ] = 255 - data [ i * 4 + 3 ] ;
921
+ fn color_convert_line_cmyk ( data : & mut [ u8 ] , _width : usize ) {
922
+ for chunk in data . chunks_exact_mut ( 4 ) {
923
+ chunk [ 0 ] = 255 - chunk [ 0 ] ;
924
+ chunk [ 1 ] = 255 - chunk [ 1 ] ;
925
+ chunk [ 2 ] = 255 - chunk [ 2 ] ;
926
+ chunk [ 3 ] = 255 - chunk [ 3 ] ;
928
927
}
929
928
}
930
929
0 commit comments