Skip to content
Snippets Groups Projects
Commit 636ffab3 authored by jacques.grelet_ird.fr's avatar jacques.grelet_ird.fr
Browse files

remove iconRead.m

parent 3db777cb
No related branches found
No related tags found
No related merge requests found
function cdata = iconRead(filename,guessalpha)
% ICONREAD read an image file and convert it to CData for a HG icon.
%
% CDATA=ICONREAD(FILENAME)
% Read an image file and convert it to CData with automatic transparency
% handling. If the image has transparency data, PNG files sometimes do,
% the transparency data is used. If the image has no CData, the top left
% pixel is treated as the transparent color.
%
% CDATA=ICONREAD(FILENAME, FALSE)
% Same as above but supress the usage of the top left pixel for images
% with no transparency data. This may require the caller to handle the
% transparency explicitly. View the contents of this m-file for an
% example of how to handle transparency.
%
% Example:
%
% icon = fullfile(matlabroot,'toolbox','matlab','icons','matlabicon.gif');
% uitoggletool('CData',iconread(icon));
%
% See also IMREAD.
% Copyright 1984-2006 The MathWorks, Inc.
if nargin < 2
guessalpha = true;
end
[p,f,ext] = fileparts(filename);
% if this is a mat-file, look for the varible cdata (or something like it)
if isequal(lower(ext),'.mat')
cdata = [];
s = whos('-file',filename);
for i=1:length(s)
if ~isempty(strfind(lower(s(i).name), 'cdata'))
data = load(filename,s(i).name);
cdata = data.(s(i).name);
end
end
return
end
[cdata,map,alpha] = imread(filename);
if isempty(cdata)
return;
end
if isempty(map)
% need to use doubles cuz nan's only work as doubles
cdata = double(cdata);
cdata = cdata/255;
else
cdata = ind2rgb(cdata,map);
end
if isempty(alpha)
if ~guessalpha
return;
end
% guess the alpha pixel by using the top left pixel in the icon
ap1 = cdata(1,1,1);
ap2 = cdata(1,1,2);
ap3 = cdata(1,1,3);
alpha = cdata(:,:,1) == ap1 & cdata(:,:,2) == ap2 & cdata(:,:,3) == ap3;
alpha = ~alpha;
end
% process alpha data
r = cdata(:,:,1);
r(alpha == 0) = NaN;
g = cdata(:,:,2);
g(alpha == 0) = NaN;
b = cdata(:,:,3);
b(alpha == 0) = NaN;
cdata = cat(3,r,g,b);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment