Due to an API I am using doesn't accept .jp2 format images, I will have to convert those images into .png.
I wrote a simple script to maintain the original data's directory:
 
JP2ToPNG[fileName_]:= Module[
    	{newFileName, filePath},
    	filePath = StringSplit[fileName, "/"] /."NcomSampleData"-> "PNG";
    	filePath[[-1]] = StringReplace[filePath[[-1]], ".jp2" -> ".png"];
    	newFileName = StringJoin[Riffle[filePath[[3;;]], "/"]];
    	filePath = StringJoin[Riffle[StringSplit[newFileName, "/"][[3;;-2]], "/"]];
    	If[
    		DirectoryQ[filePath], 
    		FileConvert[fileName -> newFileName],
    		CreateDirectory[filePath]; 
    		FileConvert[fileName -> newFileName]
    	]
    ]
But then I found that the new .png file are 2-4 times larger than the original ones. I am guessing the reason is the original data, every pixel is 1 Byte, 8 bit integer range from 0-255. But Mathematica read it as grayscale and save it as a float number 4 bytes from (0,1)?
Can anyone confirm with my guess? If I am guessing correctly, how to fix this problem?
Thanks!
				
					
				
				
					
							
							
					
					
						
							 Attachments:
							Attachments: