Exemple #1
0
def thread_function(image):
    input_file = image.get_full_file_path()
    rect = Detector.get_rect(input_file)
    coordinates = Image.prepare_coordinates(rect)
    image.coordinates = json.dumps(coordinates)
    image.status = Image.IMAGE_STATUS_TEXT_DETECTED
    image.save()
    return True
Exemple #2
0
def rescan():
    images = Image.objects()
    if images.__len__ == 0:
        return

    for image in images:
        thread = Thread(target=divide_image, args=(10, ))
        thread.start()
        thread.join()
Exemple #3
0
def show_image(file_path):
    if not g.current_user.has_access_to_see_image():
        abort(403)

    image = Image.objects(file_path=file_path)

    if not image:
        abort(404)

    image = image.get()

    return image.to_json()
Exemple #4
0
def delete_image(file_path):
    if not g.current_user.has_access_to_delete_image():
        abort(403)

    image = Image.objects(file_path=file_path)

    if not image:
        abort(404)

    image = image.get()
    image.delete_with_relations()

    return jsonify(success=True)
Exemple #5
0
def recognize(file_path):
    image = Image.objects(file_path=file_path)

    if not image:
        abort(404)

    image = image.get()
    if threading.active_count() >= THREADS_MAX_COUNT:
        raise Exception('Threads limit reached')

    x = threading.Thread(target=thread_function, args=(image, ))
    x.start()

    return jsonify({'started': True})
Exemple #6
0
def update_image(file_path):
    image = Image.objects(file_path=file_path)
    data = request.json

    if not image:
        abort(404)

    image = image.get()
    if not g.current_user.has_access_to_update_image(image.uploaded_by):
        abort(403)

    image.update_data(data)
    image.save()

    return image.to_json()
Exemple #7
0
def recognize_image(file_path):
    if not g.current_user.has_access_to_recognize_image():
        abort(403)

    image = Image.objects(file_path=file_path)

    if not image:
        abort(404)

    image = image.get()

    if not image.can_be_recognized():
        abort(405)

    image.status = Image.IMAGE_STATUS_ON_PROCESSING
    image.save()

    response = TextRecognizer.recognize(image.file_path)

    return response
Exemple #8
0
def create_image():
    if not g.current_user.has_access_to_create_image():
        abort(403)

    data = request.form

    image = Image()
    image.insert_data(data)

    if 'file' not in request.files:
        return jsonify({'error': 'File not uploaded.'}), 400

    file = request.files['file']

    if file.filename == '':
        return jsonify({'error': 'File not uploaded.'}), 400

    image.generate_file_path()
    image.original_filename = file.filename
    image.uploaded_by = g.current_user.login
    image.file_extension = image.get_uploaded_file_ext()

    if not image.upload(file):
        return jsonify({'error': 'This file cannot be uploaded.'}), 400

    image.set_image_sizes()

    image.save()

    return image.to_json()