批量给透明图片添加纯色背景<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,:); endend
imwrite(result_tu,strcat(save_path,FileNames{num}));
sprintf(' %d/%d.',num,file_num)%显示进度(当前图片数/全部图片数)
end
透明背景表情包
处理后结果


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部