保存了一些透明背景的表情包,在微信发送图片的时间遇到个小问题,
用电脑发送原图,在聊天界面显示图片底色是黑色,
用手机发送原图,在聊天界面显示图片底色是白色,
很难受,一开始想找个办法,使我发送的图片既是透明背景,而且在微信上显示的底色还是白色
但是没找到这种解决办法,
于是就想着给图片添加个纯色背景,
随便找了个网站,不花钱只能六个六个地处理,
于是我查阅资料,用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:m
for j = 1:n
k = double(alpha(i,j))/double(255);
result_tu(i,j,:) = k*Yuantu(i,j,:) + (1-k)*rgb(i,j,:);
end
end
imwrite(result_tu,strcat(save_path,FileNames{num}));
sprintf(' %d/%d.',num,file_num)%显示进度(当前图片数/全部图片数)
end


版权声明:本文为weixin_52554174原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。