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

조회 수: 27(최근 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.
[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)

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

답변(1개)

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("https://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png");
imshow(im,'Parent',app.UIAxes)
set(app.UIAxes.Children,'AlphaData',alpha)

범주

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!

Translated by