Skip to content

Commit

Permalink
Initial release soon
Browse files Browse the repository at this point in the history
  • Loading branch information
egeakman committed Jan 30, 2022
1 parent acad6ef commit f6c2fdb
Show file tree
Hide file tree
Showing 7 changed files with 776 additions and 40 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
__pycache__/
*.egg-info/
dist/
build/
*.jpg
*.png
*.jpeg
636 changes: 636 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Readme and Documentation are coming soon.
40 changes: 0 additions & 40 deletions image-optimizer.py

This file was deleted.

Empty file added image_optimizer_cli/__init__.py
Empty file.
75 changes: 75 additions & 0 deletions image_optimizer_cli/optimize.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import os
from PIL import Image
from argparse import ArgumentParser


parser = ArgumentParser()
parser.add_argument("-p", "--path", help="Path to source folder", required=True)
parser.add_argument("-o", "--output", help="Path to output folder", required=False)
parser.add_argument(
"-q", "--quality", help="Quality of optimized images", required=True, type=int
)
parser.add_argument(
"-n", "--number", help="Number of images to optimize", required=False, type=int
)

args = parser.parse_args()


def main():
if args.output:
if not os.path.isdir(args.output):
os.mkdir(args.output)

if os.path.isfile(args.path):
img = Image.open(args.path)
img.save(
args.output + "/" + os.path.basename(args.path), quality=args.quality
)

elif os.path.isdir(args.path):
if not args.number:
for image in os.listdir(args.path):
if image.endswith((".jpg", ".jpeg", ".png")):
img = Image.open(args.path + "/" + image)
img.save(
args.output + "/" + image,
optimize=True,
quality=args.quality,
)

else:
for image in os.listdir(args.path):
if image.endswith((".jpg", ".jpeg", ".png")):
img = Image.open(args.path + "/" + image)
img.save(
args.output + "/" + image,
optimize=True,
quality=args.quality,
)
args.number -= 1
if args.number == 0:
break

if not args.output:
out = os.getcwd()

if os.path.isfile(args.path):
img = Image.open(args.path)
img.save(out + "/" + os.path.basename(args.path), quality=args.quality)

elif os.path.isdir(args.path):
if not args.number:
for image in os.listdir(args.path):
if image.endswith((".jpg", ".jpeg", ".png")):
img = Image.open(args.path + "/" + image)
img.save(out + "/" + image, optimize=True, quality=args.quality)

else:
for image in os.listdir(args.path):
if image.endswith((".jpg", ".jpeg", ".png")):
img = Image.open(args.path + "/" + image)
img.save(out + "/" + image, optimize=True, quality=args.quality)
args.number -= 1
if args.number == 0:
break
57 changes: 57 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import json
import urllib.request
from setuptools import setup, find_packages


def latest_version(package_name):
url = f"https://pypi.python.org/pypi/{package_name}/json"
try:
response = urllib.request.urlopen(urllib.request.Request(url), timeout=1)
data = json.load(response)
versions = data["releases"].keys()
versions = sorted(versions)
return ">={}".format(versions[-1])
except Exception:
pass
return ""


with open("README.md", "r", encoding="utf-8") as f:
long_description = f.read()

setup(
name="image-optimizer-cli",
author="Ege Akman",
author_email="egeakmanegeakman@hotmail.com",
url="https://github.com/egeakman/image-optimizer-cli",
description="A PIL based image optimizer",
long_description=long_description,
long_description_content_type="text/markdown",
version="2022.1.30",
license="AGPLv3",
download_url="https://github.com/egeakman/image-optimizer-cli/archive/2022.1.30.tar.gz",
packages=find_packages(where=".", exclude=["tests"]),
python_requires=">=3.6",
entry_points={
"console_scripts": [
"image-optimizer=image_optimizer_cli.optimize:main",
]
},
install_requires=[
f"setuptools{latest_version('setuptools')}",
f"pillow{latest_version('pillow')}",
],
keywords=["image", "optimize", "pillow", "PIL", "compression", "compressor"],
classifiers=[
"Topic :: Utilities",
"Programming Language :: Python :: 3 :: Only",
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
"Operating System :: Microsoft :: Windows",
],
project_urls={
"Homepage": "https://github.com/egeakman/image-optimizer-cli",
"Issues": "https://github.com/egeakman/image-optimizer-cli/issues",
},
)

0 comments on commit f6c2fdb

Please sign in to comment.