slavisha84
1/23/2020 - 6:53 PM

IMAGE METADATA EXPORT

# ---------------------------------------------------------------
#                    IMAGE METADATA EXPORT 
# ---------------------------------------------------------------


# ----------------------------------------------------------------------------------------------------------------------
# Importing dependencies 
# ----------------------------------------------------------------------------------------------------------------------
from PIL.ExifTags import TAGS
from psd_tools import PSDImage
from pandas import ExcelWriter
from PIL import Image
from PIL.TiffTags import TAGS
import pandas as pd
import glob


# ----------------------------------------------------------------------------------------------------------------------
# Function to extract the metadata
# ----------------------------------------------------------------------------------------------------------------------
def get_exif(fn):
    ret = {}
    i = Image.open(fn)
    info = i._getexif()
    for tag, value in info.items():
        decoded = TAGS.get(tag, tag)
        ret[decoded] = value
    return ret


# ----------------------------------------------------------------------------------------------------------------------
#       JPG META DATA EXTRACT
# ----------------------------------------------------------------------------------------------------------------------

# Look the function through every file in folder.
jpgDir = "C:/IMAGES/TMP/"
final_jpg_df = pd.DataFrame()
for file in glob.glob(jpgDir + '*'):
    try:
        jpgdata = get_exif(file)
        jpg_temp_df = pd.DataFrame([jpgdata])
        jpg_temp_df = jpg_temp_df.loc[:, ['ExifImageWidth', 'ExifImageHeight']]
        jpg_temp_df.rename(columns={'ExifImageWidth': 'WIDTH', 'ExifImageHeight': 'HEIGHT'}, inplace=True)
        jpg_temp_df["PATH"] = file
        jpg_temp_df["File_Name"] = jpg_temp_df["PATH"].str.split("\\").str[1]
        final_jpg_df = final_jpg_df.append(jpg_temp_df)
    except:
        pass
# ----------------------------------------------------------------------------------------------------------------------
#       PSD META DATA EXTRACT
# ----------------------------------------------------------------------------------------------------------------------

PSDDir = "C:/IMAGES/TEST/"
final_PSD_df = pd.DataFrame()

for psdfile in glob.glob(PSDDir + '*'):
    try:
        psd = PSDImage.open(psdfile)
        psd_temp_df = pd.DataFrame([psd.size])
        psd_temp_df.columns = ["WIDTH", "HEIGHT"]
        psd_temp_df["PATH"] = psdfile
        psd_temp_df["File_Name"] = psd_temp_df["PATH"].str.split("\\").str[1]
        final_PSD_df = final_PSD_df.append(psd_temp_df)
    except:
        pass

# ----------------------------------------------------------------------------------------------------------------------
#       EPS META DATA EXTRACT
# ----------------------------------------------------------------------------------------------------------------------
# EPSDir = "C:/IMAGES/TEST/"
# import pandas as pd
# import glob
#
# final_EPS_df = pd.DataFrame()
#
# for epsfile in glob.glob(EPSDir + '*'):
#     try:
#         eps = Image.open(epsfile)
#         eps_temp_df = pd.DataFrame([eps.size])
#         eps_temp_df.columns = ["WIDTH", "HEIGHT"]
#         eps_temp_df["PATH"] = epsfile
#         eps_temp_df["File_Name"] = eps_temp_df["PATH"].str.split("\\").str[1]
#         final_EPS_df = final_EPS_df.append(eps_temp_df)
#     except:
#         pass
#
# final_EPS_df

# ----------------------------------------------------------------------------------------------------------------------
#       EPS,TIF,PNG, GIF
# ----------------------------------------------------------------------------------------------------------------------

TIFDir = "C:/IMAGES/TEST/"
final_TIF_df = pd.DataFrame()

for tiffiles in glob.glob(TIFDir + '*'):
    try:
        tif = Image.open(tiffiles)
        tif_temp_df = pd.DataFrame([tif.size])
        tif_temp_df.columns = ["WIDTH", "HEIGHT"]
        tif_temp_df["PATH"] = tiffiles
        tif_temp_df["File_Name"] = tif_temp_df["PATH"].str.split("\\").str[1]

        final_TIF_df = final_TIF_df.append(tif_temp_df)
    except:
        pass

final_TIF_df

# ----------------------------------------------------------------------------------------------------------------------
#       COMBINING ALL
# ----------------------------------------------------------------------------------------------------------------------

frames = [final_jpg_df, final_PSD_df, final_TIF_df]
result = pd.concat(frames)
writer = ExcelWriter('ALL_METADATA.xlsx')
export_excel = result.to_excel(writer, 'Sheet1')
writer.save()