How can I add transparency to an image displayed in App Designer UIAxes?

27 views (last 30 days)
I am using imread for a png image. Since AlphaData is not a property of UIAxes, I cannot use
set(h, 'AlphaData', alpha_data);
Is there any other way to add alpha values to UIAxes?
  1 Comment
koray beyaz
koray beyaz on 10 Oct 2017
In this particular problem I needed the image background color and the UIFigure background color to be the same. I took a png image with transparent background and figured a workaround.
[im,map,alpha]=imread('carblack.png');
im1 = im(:,:,1); %R
im2 = im(:,:,2); %G
im3 = im(:,:,3); %B
zeroel = find(~alpha) ; % Find transparent pixels (background)
im1(zeroel) = [0.81*255]; % Make those pixels a known color
im2(zeroel) = [0.87*255]; % which is the background color
im3(zeroel) = [0.91*255]; % of my UIFigure
imfinal(:,:,1) = im1;
imfinal(:,:,2) = im2;
imfinal(:,:,3) = im3;
%imshow(imfinal,'Parent',app.UIAxes)

Sign in to comment.

Answers (1)

Paul Huxel
Paul Huxel on 6 Jan 2020
AlphaData will be a property of the image that is the child of the UIAxes. It can then be set as follows:
app.UIAxes = uiaxes(uifigure); % spoof App Designer UIAxes (for demonstration)
[im,map,alpha] = imread("https://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png");
imshow(im,'Parent',app.UIAxes)
set(app.UIAxes.Children,'AlphaData',alpha)

Categories

Find more on Develop Apps Using App Designer in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!