在进行实际工程开发时,RGB屏幕需要图片数据排列成RGBA的顺序才能显示,这里我提供了一个可以把任意宽高的PNG格式图像转成RGBA排列顺序的Matlab代码,经工程测试可用,供参考。
Matlab版本:2021b
clear
% 读取PNG图像
img = imread('picture.png');
[X,map,alpha] = imread('picture.png');
[~, cols] = size(img);
cols = cols/3;
for i = 1:cols % cols是图标的像素宽,列数
r = img(:, i);
g = img(:, i+cols);
b = img(:, i+2*cols);
img1(: ,(i-1)*4+1) = r;
img1(: ,(i-1)*4+2) = g;
img1(: ,(i-1)*4+3) = b;
img1(: ,(i-1)*4+4) = alpha(:,i);
end
% 获取图像的行数和列数
[rows, cols] = size(img1);
% 打开文本文件进行写入
fid = fopen('picture.txt', 'w');
% 将像素值写入文本文件
for i = 1:rows
for j = 1:cols
fprintf(fid, '0x%x ,', img1(i,j));
end
fprintf(fid, '\n');
end
% 关闭文本文件
fclose(fid);