From 007a0f89cc50ecb1670405f90884f7568e79123b Mon Sep 17 00:00:00 2001 From: Jacob Cody Wimer Date: Tue, 20 Nov 2018 07:53:01 -0500 Subject: [PATCH] Initial commit --- .gitignore | 8 ++++ convert-notes.txt | 6 +++ convert.py | 87 ++++++++++++++++++++++++++++++++++++ full-res-files/DELETE-ME.txt | 0 web-files/DELETE-ME.txt | 0 5 files changed, 101 insertions(+) create mode 100644 .gitignore create mode 100644 convert-notes.txt create mode 100644 convert.py create mode 100644 full-res-files/DELETE-ME.txt create mode 100644 web-files/DELETE-ME.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f2dee2f --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +full-res-files/* +web-files/* +!full-res-files/DELETE-ME.txt +!web-files/DELETE-ME.txt +imagemagick/* +profile.icc +imagemagick.zip +imagemagick.tar.gz \ No newline at end of file diff --git a/convert-notes.txt b/convert-notes.txt new file mode 100644 index 0000000..3cb133d --- /dev/null +++ b/convert-notes.txt @@ -0,0 +1,6 @@ +.\ImageMagick-7.0.8-14-portable-Q16-x64\convert.exe ".\2018 Bass Family Fall004.jpg" -resize "1500x" -quality 60 -depth 24 test.jpg + +-strip gets ride of details like camera fstop etc but it also removes the color profile resulting in a washed out look + +If you have the AdobeRGB1998.icc file this is the best conversion: +.\ImageMagick-7.0.8-14-portable-Q16-x64\convert.exe ".\2018 Bass Family Fall004.jpg" -resize "1500x" -quality 60 -depth 24 -strip -profile ".\AdobeRGB1998.icc" test.jpg \ No newline at end of file diff --git a/convert.py b/convert.py new file mode 100644 index 0000000..afafa34 --- /dev/null +++ b/convert.py @@ -0,0 +1,87 @@ +import os +import sys +import zipfile +import urllib.request +import tarfile + +inputFolder = 'full-res-files' +outputFolder = 'web-files' +magickHome = "" +dyldLibrary = "" + +def clearScreen(): + os.system('cls' if os.name == 'nt' else 'clear') + +def convertFilesInInput(): + #rename files with spaces + print("Renaming any files in the input folder that have a space and replacing that with a dash.") + for filename in os.listdir(inputFolder): + #os.path.join needed to include path when renaming + os.rename(os.path.join(inputFolder,filename), os.path.join(inputFolder,filename.replace(' ', '-'))) + + for filename in os.listdir(inputFolder): + print("Converting " + filename) + #os.path.splitext(filename)[0] gets rid of file extension if you want a different extension + getProfileCmd = getImagemagickExe() + " " + getInputPath() + filename + " profile.icc" + convertCmd = getImagemagickExe() + " " + getInputPath() + filename + " -resize \"1500x\" -quality 60 -depth 24 -strip -profile \"profile.icc\" " + getOutputPath() + filename + if(os.name == "nt"): + os.system(getProfileCmd) + os.system(convertCmd) + else: + os.system(magickHome + dyldLibrary + getProfileCmd) + os.system(magickHome + dyldLibrary + convertCmd) + os.remove("profile.icc") + +def downloadImagemagick(): + if not os.path.isfile(getImagemagickExe()): + print("ImageMagick does not exist. Downloading now...") + if(os.name == "nt"): + urllib.request.urlretrieve ("https://imagemagick.org/download/binaries/ImageMagick-7.0.8-14-portable-Q16-x64.zip", "imagemagick.zip") + zipfile.ZipFile("imagemagick.zip","r").extractall(getImagemagickPath()) + os.remove("imagemagick.zip") + elif(sys.platform == "darwin"): + urllib.request.urlretrieve ("https://imagemagick.org/download/binaries/ImageMagick-x86_64-apple-darwin17.7.0.tar.gz", "imagemagick.tar.gz") + tarfile.open("imagemagick.tar.gz","r:gz").extractall(getImagemagickPath()) + os.remove("imagemagick.tar.gz") + else: + print("ImageMagick already downloaded.") + +def getImagemagickPath(): + if(os.name == "nt"): + return "imagemagick\\windows\\" + elif(sys.platform == "darwin"): + return "imagemagick/osx/" + else: + returnErrorAndExit("Your os is not supported. Try using Windows or OSX") + +def getImagemagickExe(): + if(os.name == "nt"): + return getImagemagickPath() + "\\convert.exe" + elif(sys.platform == "darwin"): + currentDir = os.path.dirname(os.path.realpath(__file__)) + global magickHome + magickHome = "export MAGICK_HOME=" + currentDir + getImagemagickPath() + ";" + global dyldLibrary + dyldLibrary = "export DYLD_LIBRARY_PATH=$MAGICK_HOME/lib;" + return getImagemagickPath() + "/bin/convert" + else: + returnErrorAndExit("Your os is not supported. Try using Windows or OSX") + +def getOutputPath(): + if(os.name == "nt"): + return outputFolder + "\\" + else: + return outputFolder + "/" + +def getInputPath(): + if(os.name == "nt"): + return inputFolder + "\\" + else: + return inputFolder + "/" + +def returnErrorAndExit(message): + input(message) + sys.exit() + +downloadImagemagick() +convertFilesInInput() \ No newline at end of file diff --git a/full-res-files/DELETE-ME.txt b/full-res-files/DELETE-ME.txt new file mode 100644 index 0000000..e69de29 diff --git a/web-files/DELETE-ME.txt b/web-files/DELETE-ME.txt new file mode 100644 index 0000000..e69de29