rpiwebapp-public/scripts/fix_thumbnail_size.py

51 lines
1.4 KiB
Python
Raw Normal View History

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()