Borrar filtros
Borrar filtros

imwrite saving image incorrectly

14 visualizaciones (últimos 30 días)
Harry West
Harry West el 8 de Dic. de 2020
Comentada: Ameer Hamza el 8 de Dic. de 2020
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

Respuestas (1)

Ameer Hamza
Ameer Hamza el 8 de Dic. de 2020
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 comentarios
Harry West
Harry West el 8 de Dic. de 2020
The images with alpha seem to have been fixed however this image also appear to turn black when saved. What issue would this be?
Ameer Hamza
Ameer Hamza el 8 de Dic. de 2020
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')

Iniciar sesión para comentar.

Categorías

Más información sobre Images en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by