@@ -31,17 +31,10 @@ pub fn transform_image(
3131 let orig_w = image. width ( ) ;
3232 let orig_h = image. height ( ) ;
3333
34- let pixel_corners = [
35- point ( 0. , 0. ) ,
36- point ( orig_w as f64 , 0. ) ,
37- point ( 0. , orig_h as f64 ) ,
38- point ( orig_w as f64 , orig_h as f64 ) ,
39- ] ;
40- let user_corners = pixel_corners. map ( |p| image_to_user. transform_point ( p) ) ;
41- let user_bounds = Box2D :: from_points ( user_corners) ;
42-
43- let transformed_corners = user_corners. map ( |p| user_to_final. transform_point ( p) ) ;
44- let transformed_box = Box2D :: from_points ( transformed_corners) ;
34+ let pixel_bounds = Box2D :: new ( point ( 0. , 0. ) , point ( orig_w as f64 , orig_h as f64 ) ) ;
35+ let user_bounds = image_to_user. outer_transformed_box ( & pixel_bounds) ;
36+ let image_to_final = image_to_user. then ( user_to_final) ;
37+ let transformed_box = image_to_final. outer_transformed_box ( & pixel_bounds) ;
4538
4639 let ( is_transform_axis_aligned, [ transformed_x_axis, transformed_y_axis] ) = {
4740 let tx = user_to_final. transform_vector ( vector ( 1.0 , 0.0 ) ) ;
@@ -79,7 +72,7 @@ pub fn transform_image(
7972 // During non-aligned rotation, the corners need to be transparent
8073 image = add_alpha_channel ( image) ;
8174
82- let image_to_final = image_to_user . then ( user_to_final ) ;
75+
8376
8477 let scale_x = image_to_final. transform_vector ( vector ( 1.0 , 0.0 ) ) . length ( ) ;
8578 let scale_y = image_to_final. transform_vector ( vector ( 0.0 , 1.0 ) ) . length ( ) ;
0 commit comments