imwrite saving image incorrectly
古いコメントを表示
I am trying to use app designer to create an app where you can load an image from your desktop, compress or decompress the image and then save the image. I have been able to load the image without any issues however when I save the image it removes the background or makes the whole image black. Heres my code:
[file, path] = uiputfile('.png');
image = imread(app.imagePath);
imwrite(image,fullfile(path,file))
app.imagePath is the path to the original image that I want to save
回答 (1 件)
Ameer Hamza
2020 年 12 月 8 日
Does your png image have transparent components? Try saving with the alpha channel.
[file, path] = uiputfile('.png');
[image, ~, amap] = imread(app.imagePath);
imwrite(image,fullfile(path,file), 'Alpha', amap)
5 件のコメント
Harry West
2020 年 12 月 8 日
Ameer Hamza
2020 年 12 月 8 日
That shows your png images do not have an alpha mask. But in that case, the background issues shouldn't happen. Can you attach one of your images?
Image Analyst
2020 年 12 月 8 日
And, Harry, don't use "image" as the name of your variable because it's an important built-in function that you just blew away.
Harry West
2020 年 12 月 8 日
Ameer Hamza
2020 年 12 月 8 日
Ok, the issue is not the alpha map; rather, the png file is saved as an indexed image.
Either convert it to rgb image before using imwrite()
[img, cmap] = imread('block.png');
img_rgb = ind2rgb(img, cmap);
imwrite(img_rgb, 'test.png')
or specify colormap in imwrite()
[img, cmap] = imread('block.png');
imwrite(img, cmap, 'test.png')
カテゴリ
ヘルプ センター および File Exchange で Images についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!