본인좌, 얼마전에 SONY A7M3를 구입했다.

그런데, 메모리카드의 이미지를 옮기다가 알게된 사실이 있다.

파일명이 거지 같이 네이밍 되어있는 것이다.

 

Cap 2020-01-12 04-22-46-125.png

 

위 그림은 강아지 대가리만 찍은 사진들이다.

필자가 A7M3에서 설정한 SDS뒤에 파일 번호가 붙어있다.

 

Cap 2020-01-12 04-25-51-685.png

 

위 그림은 NOTE 8로 찍은 사진들이다. 보시다시피 날짜로 소팅되어 관리되고 있다.

이것은 Onecloud에서 동기화시키는 경우, 날짜가 자동으로 변경되는 기능을 이용한 것이다.

 

아무튼, 파일명을 이렇게 바꾸고 싶었다.

 

matlab source code는 아래와 같다.

 


clc

clear all

close all

w = warning ('off','all');

warning(w);

iSwitch  = 0;

 

iLastNumber = 100000;

 

for i=1:1:iLastNumber

    % File name

        if  i<10

            chFileName = sprintf('SDS0000%d.JPG', i);

        elseif i<100

            chFileName = sprintf('SDS000%d.JPG', i);

        elseif i<1000

            chFileName = sprintf('SDS00%d.JPG', i);

        elseif i<10000

            chFileName = sprintf('SDS0%d.JPG', i);

        elseif i<100000

            chFileName = sprintf('SDS%d.JPG', i);

        end

   

    % Read file 

        orFileName = sprintf('%s\\%s', pwd, chFileName);

        hFile = fopen(orFileName, 'r');

        if hFile == -1

            if iSwitch == 0

                iSwitch = 0;

                continue;

            else

                break;

            end

        else

            iSwitch = 1;

           

            fclose(hFile);

        end

       

    % File information

        stImage         = imfinfo(chFileName);

        iSize           = stImage.FileSize;

        iWidth          = stImage.Width;

        iHeight         = stImage.Height;

        chDate          = stImage.DigitalCamera.DateTimeOriginal;

        iExposureTime   = stImage.DigitalCamera.ExposureTime;

        iISO            = stImage.DigitalCamera.ISOSpeedRatings;

        iFNumber        = stImage.DigitalCamera.FNumber;

        chYY = chDate(1:4);         chMM = chDate(6:7);         chDD = chDate(9:10);

        chhh = chDate(12:13);       chmm = chDate(15:16);       chss = chDate(18:19);

       

        mvFileName = sprintf('%s%s%s_%s%s%s_SS(%.3f)_ISO(%.1f)_F(%.1f).jpg', chYY, chMM, chDD, chhh, chmm, chss, iExposureTime, iISO, iFNumber);

       

        fprintf('[System] %s s(%d) w(%d) h(%d), y(%s), m(%s), d(%s) h(%s) m2(%s) s(%s)\n', chFileName, iSize, iWidth, iHeight, chYY, chMM, chDD, chhh, chmm, chss);

        movefile(orFileName, mvFileName);

       

end

 

clear ans hFile

clear iLastNumber iSwitch

clear iExposureTime iISO iFNumber

clear chDate chYY chMM chDD chhh chmm chss

clear iSize iWidth iHeight

clear i j k z w

 

 


 

Cap 2020-01-12 04-30-42-871.png

 

위 그림은 source code를 적용한 모습이다.

조금 신경을 써서 셔터스피드, ISO, 조리개값까지 파일명으로 볼 수 있도록 했다.