MATLAB Answers

How can I stop image stretching using imshow in the new App designer?

19 views (last 30 days)
Shaun Ward
Shaun Ward on 5 Nov 2016
Commented: Michal Mucek on 16 Apr 2021
I am using the new App Designer and the "imshow" function to display a greyscale image. When I resize the app the image is stretched. How can I ensure the aspect ratio of the image is maintained? Thanks, Shaun

Answers (2)

Chris Portal
Chris Portal on 6 Nov 2016
There are a few ways to do this, depending on the complexity of your app...
1) The simplest would be to turn off the auto resize option in App Designer. Select the UI figure in App Designer's design view, and uncheck the Resize components when app is resized option. The downside is you will lose the convenient auto resizing of your components when the app window is resized.
2) If you'd like to keep the auto resizing of your components, you could try adding the following line to your App Designer code after you display your image. Assuming the UI axes in your app has been named "UIAxes":
set(app.UIAxes, 'Units', 'Pixels')
3) If neither of the above options are acceptable, you would need to implement a SizeChangedFcn in App Designer by right clicking on the UI figure and going to callbacks. This would allow you to have full control of how every component is resized, but would require you to code up the logic manually.
Hope this helps!
Chris Portal
Chris Portal on 19 Nov 2016
Sorry to hear Shaun. I took a quick peek at GUIDE. By default, the figure GUIDE creates is set to not allow resizing.
If you enable figure resizing though, you get the same results as option 1 above where you end up with lots of unused space. If you're seeing something different in this case, it might help to see some of your GUIDE code to see how you're calling IMSHOW, or perhaps seeing a listing of axes property/value configurations.
Hope you're able to get things working!

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by