@@ -143,8 +143,7 @@ def onResume(self, screen):
143143 print (f"camera app: webcam exception: { e } " )
144144 if self .cam :
145145 print ("Camera app initialized, continuing..." )
146- self .create_preview_image ()
147- self .set_image_size ()
146+ self .update_preview_image ()
148147 self .capture_timer = lv .timer_create (self .try_capture , 100 , None )
149148 self .status_label_cont .add_flag (lv .obj .FLAG .HIDDEN )
150149 if self .scanqr_mode or self .keepliveqrdecoding :
@@ -181,21 +180,7 @@ def onPause(self, screen):
181180 print (f"Warning: powering off camera got exception: { e } " )
182181 print ("camera app cleanup done." )
183182
184- def set_image_size (self ):
185- disp = lv .display_get_default ()
186- target_h = disp .get_vertical_resolution ()
187- #target_w = disp.get_horizontal_resolution() - self.button_width - 5 # leave 5px for border
188- target_w = target_h # square
189- print (f"scaling to size: { target_w } x{ target_h } " )
190- scale_factor_w = round (target_w * 256 / self .width )
191- scale_factor_h = round (target_h * 256 / self .height )
192- print (f"scale_factors: { scale_factor_w } ,{ scale_factor_h } " )
193- self .image .set_size (target_w , target_h )
194- #self.image.set_scale(max(scale_factor_w,scale_factor_h)) # fills the entire screen but cuts off borders
195- self .image .set_scale (min (scale_factor_w ,scale_factor_h ))
196-
197- def create_preview_image (self ):
198- # Create image descriptor once
183+ def update_preview_image (self ):
199184 self .image_dsc = lv .image_dsc_t ({
200185 "header" : {
201186 "magic" : lv .IMAGE_HEADER_MAGIC ,
@@ -208,7 +193,17 @@ def create_preview_image(self):
208193 'data' : None # Will be updated per frame
209194 })
210195 self .image .set_src (self .image_dsc )
211-
196+ disp = lv .display_get_default ()
197+ target_h = disp .get_vertical_resolution ()
198+ #target_w = disp.get_horizontal_resolution() - self.button_width - 5 # leave 5px for border
199+ target_w = target_h # square
200+ print (f"scaling to size: { target_w } x{ target_h } " )
201+ scale_factor_w = round (target_w * 256 / self .width )
202+ scale_factor_h = round (target_h * 256 / self .height )
203+ print (f"scale_factors: { scale_factor_w } ,{ scale_factor_h } " )
204+ self .image .set_size (target_w , target_h )
205+ #self.image.set_scale(max(scale_factor_w,scale_factor_h)) # fills the entire screen but cuts off borders
206+ self .image .set_scale (min (scale_factor_w ,scale_factor_h ))
212207
213208 def qrdecode_one (self ):
214209 try :
@@ -364,8 +359,7 @@ def handle_settings_result(self, result):
364359 self .status_label_cont .remove_flag (lv .obj .FLAG .HIDDEN )
365360 return # Don't continue if camera failed
366361
367- self .create_preview_image ()
368- self .set_image_size ()
362+ self .update_preview_image ()
369363
370364 def try_capture (self , event ):
371365 #print("capturing camera frame")
0 commit comments