e04896dce018358b503e79ca58c1dad6b89d2188
Scanning / leescan.py
# Copyright © 2023 Dean Lee
import shutil
from datetime import datetime
from flask import Flask
import sane
from PIL import Image
app = Flask(__name__)
cache = 'image-cache/'
outputPath = '/mnt/nas-lee/share'
currentTime = datetime.now()
timeString = currentTime.strftime('date-%d-%m-%y-time-%I-%M-%S-%p')
precision = currentTime.microsecond
newFilename = timeString + '.jpg'
def readImageFile(imageFile):
image = Image.open(cache + imageFile)
return image
@app.route('/get-scanner')
def getScanner():
sane.init()
devices = sane.get_devices(True)
return devices[0][0]
@app.route('/scan/<path:scanner>')
def scan(scanner):
sane.init()
scanner = sane.open(scanner)
image = scanner.scan()
image.save(cache + newFilename)
scanner.close()
return newFilename
@app.route('/rotate/<string:imageFile>')
def rotate(imageFile):
image = readImageFile(imageFile)
image = image.transpose(Image.ROTATE_180)
image.save(cache + newFilename)
return newFilename
@app.route('/save/<string:fileName>')
def save(fileName):
shutil.copy((cache + fileName), outputPath)
return fileName
@app.route('/pdf/<path:images>')
def makePdf(images):
imageList = images.split('/')
imageList = list(map(readImageFile, imageList))
pdfFilename = timeString + '.pdf'
imageList[0].save((cache + pdfFilename), save_all=True, append_images=imageList[1:])
return pdfFilename
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56