rpiwebapp-public/scripts/fix_thumbnail_size.py
Matthew Welch c4e6824a8a Move some files out of scripts folder
Change error logging to log messages as error rather than info
Add 404 error when video or comic not found
Change paths to use pathlib
2021-07-10 13:17:28 -07:00

51 lines
1.4 KiB
Python

import os
import sqlite3
from io import BytesIO
from wand.image import Image
RPI_DATABASE = "/var/lib/rpiWebApp/database.db"
MC_DATABASE = "***REMOVED***"
DATABASE = RPI_DATABASE if os.path.exists(RPI_DATABASE) else MC_DATABASE
db = sqlite3.connect(DATABASE)
db.row_factory = sqlite3.Row
def resize_image(image, new_width=256, new_height=256):
new_image = image
orig_height = new_image.height
orig_width = new_image.width
if orig_height >= orig_width:
width = int((orig_width / orig_height) * new_height)
height = new_height
else:
height = int((orig_height / orig_width) * new_width)
width = new_width
new_image.thumbnail(width, height)
return new_image
def fix_thumbnails():
new_height = 256
new_width = 256
print("Start fix thumbnail size")
rows = db.execute("SELECT * FROM comic_thumbnails")
print("got list of all thumbnails\n")
for row in rows:
with Image(blob=row["image"]) as image:
if image.width > new_width or image.height > new_height:
print("id:", row["id"], "pageNumber:", row["pageNumber"])
db.execute(
"UPDATE comic_thumbnails SET image=? WHERE id=? AND pageNumber=?",
[resize_image(image, new_width, new_height).make_blob(), row["id"], row["pageNumber"]],
)
db.commit()
fix_thumbnails()