Clear Filters
Clear Filters

How could I convert my png images to tiff?

15 views (last 30 days)
Leila
Leila on 30 Sep 2020
Commented: Ameer Hamza on 30 Sep 2020
this is my code:
clc; clear; close all;
imagePath = 'C:\Users\images';
savePath = 'C:\Users\images_tiff';
fileNames = dir(imagePath);
fileNames = fileNames(3:end);
for i = 1:size(fileNames,1)
varH =fileNames(i).name;
I= imread([imagePath '\' varH]);
imwrite(I ,[savePath '\' varH,'.tiff'],'tiff')
end
it convert my images ti tiff but add .png extension to them
  2 Comments
KSSV
KSSV on 30 Sep 2020
What about the present code? Any error?
Leila
Leila on 30 Sep 2020
it convert my images to tiff but add .png extension to them

Sign in to comment.

Answers (2)

Ameer Hamza
Ameer Hamza on 30 Sep 2020
Edited: Ameer Hamza on 30 Sep 2020
Your code will fail if the directly contain any other files other than png files (even hidden files). You need to specify the file type. Try this
clc; clear; close all;
imagePath = 'C:\Users\LENOVO\Dropbox\My PC (DESKTOP-A78LL8Q)\Desktop\task\grayScale';
savePath = 'C:\Users\LENOVO\Dropbox\My PC (DESKTOP-A78LL8Q)\Desktop\task\grayScale_tiff';
fileNames = dir([imagePath '\*.png']); % specify png here
for i = 1:numel(fileNames)
varH =fileNames(i).name;
I= imread([imagePath '\' varH]);
imwrite(I ,[savePath '\' varH(1:end-4),'.tiff'],'tiff')
end

Walter Roberson
Walter Roberson on 30 Sep 2020
varH =fileNames(i).name;
That variable is going to contain the file name that you are reading in, without any directory part, but including the file extension.
imwrite(I ,[savePath '\' varH(1:end-4),'.tiff'],'tiff')
It still has that file extension in that line, and as well you are adding on a second file extension .tiff .
[~, basename, ~] = fileparts(varH);
newfile = fullfile(savePath, [basename '.tiff']);
imwrite(I, newfile, 'tiff');

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!