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

조회 수: 23(최근 30일)
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
koray beyaz
koray beyaz 2017년 10월 10일
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.
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;

댓글을 달려면 로그인하십시오.


Paul Huxel
Paul Huxel 2020년 1월 6일
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("");

Community Treasure Hunt

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

Start Hunting!

Translated by