Why does IMWRITE produce an empty image when I try to save a figure to the disk folder?
Show older comments
I currently have a MATLAB figure that has a button to allow the user to save that image to the folder. I would like when the user clicks on the button, the save dialog window to appear so that the user can specify the name, type and location.
From the search that I did in here, I think I need to use uiputfile and imwrite to accomplish this. I tried the code below which is called when the user click on the save button but it saves an empty image. fh3 is the handle for the figure.
function pbsave_callback(source, eventdata, fh3)
[files, path, index] = uiputfile({'*.jpg';'*.gif';'*.*'},'Save As');
imwrite(fh3, files, 'jpg');
end
Accepted Answer
More Answers (2)
Walter Roberson
on 7 Feb 2011
1 vote
imwrite() writes a matrix of data as an image. It is taking your fh3 as a single 1 x 1 pixel of image data.
Use saveas() to copy figures to image files.
S
on 7 Feb 2011
0 votes
2 Comments
Walter Roberson
on 7 Feb 2011
What Units are you using for the controls?
When you saveas() or print() the figure PaperPosition and PaperPositionMode take effect, with an effective resize operation.
I recommend you use the matlab file exchange contribution "export_fig"
S
on 7 Feb 2011
Categories
Find more on Images in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!