![0000 Screenshot.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/207438/0000%20Screenshot.png)
How to create the same png icon but with a different color?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Akbar
am 7 Mär. 2019
Kommentiert: Image Analyst
am 9 Mär. 2019
Here is a .png of a button icon.
I need exactly the same icon, with the same style but a green color.
How can I achieve that?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/207385/image.png)
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 8 Mär. 2019
Try this:
redButton = imread('red button.png');
[rows, columns, numberOfColorChannels] = size(redButton)
% Convert to Hue, saturation, value color space.
hsvImage = rgb2hsv(redButton);
% Make hue 0.3. Adjust as needed.
hsvImage(:, :, 1) = 0.3 * ones(rows, columns);
% Go back to RGB space
greenButton = im2uint8(hsv2rgb(hsvImage));
% Display both images.
subplot(2, 1, 1);
imshow(redButton);
subplot(2, 1, 2);
imshow(greenButton);
![0000 Screenshot.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/207438/0000%20Screenshot.png)
If you want to cycle through a bunch of colors to see them all, try this:
for h = 0 : 0.05 : 1
redButton = imread('red button.png');
[rows, columns, numberOfColorChannels] = size(redButton)
hsvImage = rgb2hsv(redButton);
% Make hue the current h color.
hsvImage(:, :, 1) = h * ones(rows, columns);
greenButton = im2uint8(hsv2rgb(hsvImage));
% Display both images.
subplot(2, 1, 1);
imshow(redButton);
subplot(2, 1, 2);
imshow(greenButton);
drawnow
promptMessage = sprintf('This Hue = %.2f\nDo you want to Continue, or Quit?', h);
titleBarCaption = 'Continue?';
buttonText = questdlg(promptMessage, titleBarCaption, 'Continue', 'Quit', 'Continue');
if contains(buttonText, 'Quit')
break;
end
end
2 Kommentare
Weitere Antworten (1)
Walter Roberson
am 7 Mär. 2019
img = imread('ButtonRed.png');
mask = img(:,:,2) < 128; %true for red areas but false for white areas
npix = nnz(mask);
temp = [zeros(npix,1), ones(npix,1), zeros(npix,1)]; %green
img(repmat(mask,1,1,3)) = temp;
imwrite(img, 'ButtonGreen.png');
0 Kommentare
Siehe auch
Kategorien
Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!