Я написал фрагмент кода в Matlab, который изменяет размер изображения до определенного размера (без искажений) и при необходимости применяет прокладку.Матрица Pad с прозрачными пикселями в Matlab
Однако прокладка черная, и я хотел бы, чтобы она была прозрачной. Я не знаю, как это сделать. Это код, который у меня есть:
% global variables
inputFolder = 'input/images/';
outputFolder = 'input/resized/';
extension = 'jpg';
x = 1000;
y = 1000;
% list all the files in the input folder
fileList = dir([inputFolder '*.' extension]);
% loop through all the files in the input folder, resize, pad and save
for i=1:length(fileList)
% get filename and load image
fname = fileList(i).name;
container = imread([inputFolder fname]);
% calculate local variables
containerY = size(container,1);
containerX = size(container,2);
containerProp = containerX/containerY;
canvasProp = x/y;
% determine proportions, apply padding and resize
if containerProp < canvasProp
container = imresize(container, [y NaN]);
containerX = size(container,2);
container = padarray(container, [0 floor((x - containerX)/2)], 0, 'pre');
containerX = size(container,2);
container = padarray(container, [0 (x - containerX)], 0, 'post');
elseif containerProp == canvasProp
container = imresize(container, [y x]);
else
container = imresize(container, [NaN x]);
containerY = size(container,1);
container = padarray(container, [floor((y - containerY)/2) 0], 0, 'pre');
containerY = size(container,1);
container = padarray(container, [(y - containerY) 0], 0, 'post');
end
% save resized image
imwrite(container, [outputFolder fname]);
end
Кто-нибудь знает, как изменить прокладку от черного до прозрачного?
Извините, подсветка кода для кода matlab действительно не работает –
Первая проблема заключается в том, что jpeg не имеет канала прозрачности. – user1071136
@ user1071136, я знаю, но я собираюсь сохранить как .png, поэтому любые прозрачные пиксели, которые я добавляю, будут сохранены. –