import os
import re
import subprocess

from django.apps import apps
from django.conf import settings

from PIL import ImageFile
from bs4 import BeautifulSoup
# pip install python-resize-image
from resizeimage import resizeimage


def resize_image(img, width=None, height=None, quality=72, base_path="", filename=""):
    if width and height:
        newimg = resizeimage.resize_cover(img, [width, height])
    if width and not height:
        newimg = resizeimage.resize_width(img, width)
    if height and not width:
        newimg = resizeimage.resize_height(img, height)
    if not os.path.isdir(base_path):
        os.makedirs(base_path)
    path = "%s%s" % (base_path, filename)
    ImageFile.MAXBLOCK = img.size[0] * img.size[1] * 4
    newimg.save(path, newimg.format, quality=quality)
    subprocess.call(["jpegoptim", "%s" % path])