失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 批量给透明图片添加纯色背景<matlab>

批量给透明图片添加纯色背景<matlab>

时间:2023-09-21 02:08:13

相关推荐

批量给透明图片添加纯色背景<matlab>

保存了一些透明背景的表情包,在微信发送图片的时间遇到个小问题,

用电脑发送原图,在聊天界面显示图片底色是黑色,

用手机发送原图,在聊天界面显示图片底色是白色,

很难受,一开始想找个办法,使我发送的图片既是透明背景,而且在微信上显示的底色还是白色

但是没找到这种解决办法,

于是就想着给图片添加个纯色背景,

随便找了个网站,不花钱只能六个六个地处理,

于是我查阅资料,用matlab写了个能够批量处理的程序。

%%配置Path ='E:\兔子1\';% 原图路径File = dir(fullfile(Path,'*.png')); % 获取所有.png图片save_path='E:\白兔子\';% 保存路径%纯色背景RGB参数Red=0XF2;Green=0XFD;Blue=0XFF;%%处理 FileNames = {File.name}';[file_num,~] = size(FileNames);for num=1:file_num[Yuantu, map, alpha] = imread(strcat(Path ,FileNames{num})); %读取待处理图片[m,n] = size(alpha);%纯色背景I=zeros(m,n,3);I=uint8(I);R=I(:,:,1);G=I(:,:,2);B=I(:,:,3);R(:,:)=Red;G(:,:)=Green;B(:,:)=Blue;rgb=cat(3,R,G,B); %构建矩阵%合成result_tu = rgb; for i= 1:mfor j = 1:nk = double(alpha(i,j))/double(255);result_tu(i,j,:) = k*Yuantu(i,j,:) + (1-k)*rgb(i,j,:); endendimwrite(result_tu,strcat(save_path,FileNames{num}));sprintf(' %d/%d.',num,file_num)%显示进度(当前图片数/全部图片数)end

透明背景表情包

处理后结果

如果觉得《批量给透明图片添加纯色背景<matlab>》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。