def test_to_jpeg() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH) is True path0 = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH, height=512, width=256, page=0, force=True) assert os.path.exists(path0) is True assert os.path.getsize(path0) > 0 assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path0) with Image.open(path0) as jpeg: assert jpeg.height == 357 assert jpeg.width == 256 path1 = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH, height=512, width=256, page=1, force=True) assert os.path.exists(path1) is True assert os.path.getsize(path1) > 0 assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path1) with Image.open(path1) as jpeg: assert jpeg.height == 357 assert jpeg.width == 256
def test_to_jpeg(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) path0 = manager.get_jpeg_preview(file_path=os.path.join( CURRENT_DIR, 'the_odt.odt'), height=512, width=256, page=0, force=True) assert os.path.exists(path0) == True assert os.path.getsize(path0) > 0 assert path0 == '/tmp/preview-generator-tests/cache/22dd222de01caa012b7b214747169d41-256x512-page0.jpeg' # nopep8 with Image.open(path0) as jpeg: assert jpeg.height in range(361, 363) assert jpeg.width == 256 path1 = manager.get_jpeg_preview(file_path=os.path.join( CURRENT_DIR, 'the_odt.odt'), height=512, width=256, page=1, force=True) assert os.path.exists(path1) == True assert os.path.getsize(path1) > 0 assert path1 == '/tmp/preview-generator-tests/cache/22dd222de01caa012b7b214747169d41-256x512-page1.jpeg' # nopep8 with Image.open(path1) as jpeg: assert jpeg.height in range(361, 363) assert jpeg.width == 256
def test_odp_to_jpeg_no_extension() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert (manager.has_jpeg_preview(file_path=ODP_FILE_PATH_NO_EXTENSION, file_ext=ODP_FILE_EXT) is True) path0 = manager.get_jpeg_preview( file_path=ODP_FILE_PATH_NO_EXTENSION, file_ext=ODP_FILE_EXT, height=512, width=256, page=0, force=True, ) assert os.path.exists(path0) assert os.path.getsize(path0) > 0 re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path0) with Image.open(path0) as jpeg: assert jpeg.height == 192 assert jpeg.width == 256 path1 = manager.get_jpeg_preview( file_path=ODP_FILE_PATH_NO_EXTENSION, file_ext=ODP_FILE_EXT, height=512, width=256, page=1, force=True, ) assert os.path.exists(path1) assert os.path.getsize(path1) > 0 assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path1) with Image.open(path1) as jpeg: assert jpeg.height == 192 assert jpeg.width == 256
def test_to_jpeg__default_size(file_path): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) with pytest.raises(UnsupportedMimeType): manager.get_jpeg_preview( file_path=file_path, file_ext='.bin' )
def test_to_jpeg(file_path): manager = PreviewManager( cache_folder_path=CACHE_DIR, create_folder=True ) with pytest.raises(UnsupportedMimeType): manager.get_jpeg_preview( file_path=file_path, height=256, width=512 )
def get_one(self, page_id: str='-1', revision_id: str=None, size: int=300, *args, **kwargs): file_id = int(tg.request.controller_state.routing_args.get('file_id')) page = int(page_id) revision_id = int(revision_id) if revision_id != 'latest' else None cache_path = CFG.get_instance().PREVIEW_CACHE_DIR preview_manager = PreviewManager(cache_path, create_folder=True) user = tmpl_context.current_user content_api = ContentApi(user, show_archived=True, show_deleted=True) if revision_id: file_path = content_api.get_one_revision_filepath(revision_id) else: file = content_api.get_one(file_id, self._item_type) file_path = content_api.get_one_revision_filepath(file.revision_id) try: path = preview_manager.get_jpeg_preview(file_path=file_path, page=page, height=size, width=size) with open(path, 'rb') as large: result = large.read() except PreviewGeneratorException: result = None return result
def create_preview(doc_id): document = BaseDocument.objects.get(unique_uuid=doc_id) upload_document_path = get_upload_document_path( document, os.path.basename(document.main_file.name)) upload_cache_path = get_preview_directory( document, os.path.basename(document.main_file.name)) full_path = os.path.join(MEDIA_ROOT, upload_document_path) full_cache_path = os.path.join(MEDIA_ROOT, upload_cache_path) cache_path = os.path.dirname(full_cache_path) manager = PreviewManager(cache_path, create_folder=True) try: path_to_preview_image = manager.get_jpeg_preview(full_path, width=1920, height=1080) except UnavailablePreviewType: logger.warning("UnavailablePreviewType: Preview was not created") else: preview_dir_path = os.path.dirname(path_to_preview_image) preview_base_name = os.path.basename(path_to_preview_image) document.preview.name = os.path.join( upload_cache_path, os.path.basename(path_to_preview_image)) if document.main_file.name.endswith('.pdf'): document.preview_pdf.name = upload_document_path return os.chdir(preview_dir_path) for file in glob.glob( preview_base_name.replace('-1920x1080.jpeg', '') + "*.pdf"): document.preview_pdf.name = os.path.join(upload_cache_path, os.path.basename(file)) return
def add(request, code, lecture): try: lecture = Lecture.objects.get(pk=lecture) except Exception as e: raise Http404 if request.method != "POST": raise Http404() print(request.FILES) form = ResourceForm(request.POST, request.FILES) print(form) # print(form.errors) if form.is_valid(): file = form.cleaned_data['file'] resource = Resource(title=file.name, lecture=lecture, file=file) resource.save() else: return HttpResponse("error") manager = PreviewManager(cache_path, create_folder=True) print(resource.file.path) path_to_preview_image = manager.get_jpeg_preview(resource.file.path, page=0) resource.preview = path_to_preview_image.split('/')[-1] resource.save() return HttpResponseRedirect(reverse('courses:course', args=[code]))
def test_text_to_jpeg(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) path_to_file = manager.get_jpeg_preview(file_path=os.path.join( CURRENT_DIR, 'the_text.txt'), force=True) assert os.path.exists(path_to_file) == True assert os.path.getsize(path_to_file) > 0
def generate(): name = request.args.get('filename', 'unnamed') app.logger.info('POST /preview?filename=%s' % name) data = request.data with tempfile.TemporaryDirectory() as tmpdirname: input_path = os.path.join(tmpdirname, name) file = open(input_path, 'w+b') file.write(data) file.close() cache_path = os.path.join(tmpdirname, 'cache') try: manager = PreviewManager(cache_path, create_folder=True) output_path = manager.get_jpeg_preview(input_path) file = open(output_path, 'r+b') output = file.read() response = make_response(output) response.headers['Content-Type'] = 'image/jpeg' response.headers[ 'Content-Disposition'] = 'inline;filename=%s' % output_path app.logger.info(' ==> POST /preview?filename=%s ok' % output_path) return response except InputExtensionNotFound as error: return jsonify(error=repr(error), code=400), 400 except Exception as error: return jsonify(error=repr(error), code=400), 400
def get_image_preview(file_id, path): cache_path = pathconst.TEMP manager = PreviewManager(cache_path, create_folder=True) path_to_jpeg_preview = manager.get_jpeg_preview(file_path=path, height=800, width=800) return path_to_jpeg_preview
def test_to_jpeg_no_extension() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) image_file_path = HTML_FILE_PATH_NO_EXTENSION assert manager.has_jpeg_preview(file_path=image_file_path) is True path_to_file = manager.get_jpeg_preview(file_path=image_file_path, force=True) assert os.path.exists(path_to_file) is True
def get_one(self, page_id: str = '-1', revision_id: str = None, size: int = 300, *args, **kwargs): file_id = int(tg.request.controller_state.routing_args.get('file_id')) page = int(page_id) revision_id = int(revision_id) if revision_id != 'latest' else None cache_path = CFG.get_instance().PREVIEW_CACHE_DIR preview_manager = PreviewManager(cache_path, create_folder=True) user = tmpl_context.current_user content_api = ContentApi(user, show_archived=True, show_deleted=True) if revision_id: file_path = content_api.get_one_revision_filepath(revision_id) else: file = content_api.get_one(file_id, self._item_type) file_path = content_api.get_one_revision_filepath(file.revision_id) try: path = preview_manager.get_jpeg_preview(file_path=file_path, page=page, height=size, width=size) with open(path, 'rb') as large: result = large.read() except PreviewGeneratorException: result = None return result
def test_text_to_jpeg(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH, ) is True path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH, force=True) assert os.path.exists(path_to_file) is True assert os.path.getsize(path_to_file) > 0
def test_algorithm4(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH__A4) is True path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH__A4, force=True) with Image.open(path_to_file) as jpeg: assert jpeg.height == 256 assert jpeg.width in range(180, 182)
def test_text_to_jpeg() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) image_file_path = HTML_FILE_PATH assert manager.has_jpeg_preview(file_path=image_file_path) is True path_to_file = manager.get_jpeg_preview(file_path=image_file_path, force=True) assert os.path.exists(path_to_file) is True assert os.path.getsize(path_to_file) > 0
def test_to_jpeg__default_size(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH, force=True) assert os.path.exists(path_to_file) == True assert os.path.getsize(path_to_file) > 0 with Image.open(path_to_file) as jpeg: assert jpeg.height in range(226, 228) assert jpeg.width == 256
def test_to_jpeg_no_extension_extension_forced(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) image_file_path = IMAGE_FILE_PATH_NO_EXTENSION assert manager.has_jpeg_preview(file_path=image_file_path, file_ext=".txt") is True path_to_file = manager.get_jpeg_preview(file_path=image_file_path, force=True, file_ext=".txt") assert os.path.exists(path_to_file) is True
def test_to_jpeg__default_size(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH, ) assert os.path.exists(path_to_file) == True assert os.path.getsize(path_to_file) > 0 assert path_to_file == '/tmp/preview-generator-tests/cache/f910f2af6cda4fff79f21456e19e021c-256x256.jpeg' # nopep8 with Image.open(path_to_file) as jpeg: assert jpeg.height in range(229, 231) assert jpeg.width == 256
def test_to_jpeg__default_size(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH, ) assert os.path.exists(path_to_file) == True assert os.path.getsize(path_to_file) > 0 assert path_to_file == '/tmp/preview-generator-tests/cache/4ebf3400b8b74282dfbf61e784777928-256x256.jpeg' # nopep8 with Image.open(path_to_file) as jpeg: assert jpeg.height in range(254, 256) assert jpeg.width == 256
def main() -> None: args = parse_args() logging.basicConfig(level=logging.ERROR - 10 * args.v) # In logging, levels are 40, 30, 20, 10. if args.check_dependencies: check_dependencies() if args.input_files: manager = PreviewManager("./") for input_file in args.input_files: path_to_preview_image = manager.get_jpeg_preview(input_file) print(input_file, "→", path_to_preview_image)
def test_to_jpeg__default_size(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH, force=True) assert os.path.exists(path_to_file) == True assert os.path.getsize(path_to_file) > 0 assert path_to_file == '/tmp/preview-generator-tests/cache/243918a3cda4aa11bfe7603b627a587f-256x256.jpeg' # nopep8 with Image.open(path_to_file) as jpeg: assert jpeg.height in range(100, 102) assert jpeg.width == 256
def test_to_jpeg_no_size(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) path_to_file = manager.get_jpeg_preview(file_path=os.path.join( CURRENT_DIR, 'the_pdf.pdf'), force=True) assert os.path.exists(path_to_file) == True assert os.path.getsize(path_to_file) > 0 with Image.open(path_to_file) as jpeg: assert jpeg.height == 256 assert jpeg.width in range(180, 182)
def pdf_to_image(cach_dir_path, pdf_file_path, font_path=None): """Convert text file to a grayscale image with black characters on a white background. arguments: text_path - the content of this file will be converted to an image font_path - path to a font file (for example impact.ttf) """ preview_manager = PreviewManager(cach_dir_path, create_folder= True) preview = preview_manager.get_jpeg_preview(pdf_file_path, height=Height,width=WIDTH) return preview
def create_thumb(sender, instance): #Se il file è un audio gli assegno una thumbnail prefatta if 'audio' in instance.tipoFile: return '/thumb/audio.png' else: filepath = instance.fileUrl.file.name cache_path = settings.MEDIA_ROOT + '/thumb' manager = PreviewManager(cache_path, create_folder=True) FullPathToimage = manager.get_jpeg_preview(filepath) return '/thumb/' + os.path.basename(FullPathToimage)
def create_preview(self): full_path = self.upload.path cache_path = os.path.dirname(full_path) manager = PreviewManager(cache_path, create_folder=True) path_to_preview_image = manager.get_jpeg_preview(full_path, width=200, height=200) self.preview.name = path_to_preview_image.replace(MEDIA_ROOT, '') #raise Exception(self.preview.name,path_to_preview_image) self.save()
def test_to_jpeg_no_size_no_page(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) path_to_file = manager.get_jpeg_preview(file_path=os.path.join( CURRENT_DIR, 'the_odt.odt'), force=True) assert os.path.exists(path_to_file) == True assert os.path.getsize(path_to_file) > 0 assert path_to_file == '/tmp/preview-generator-tests/cache/22dd222de01caa012b7b214747169d41-256x256.jpeg' # nopep8 with Image.open(path_to_file) as jpeg: assert jpeg.height == 256 assert jpeg.width in range(180, 182)
def test_to_jpeg__default_size() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH) is True path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH) assert os.path.exists(path_to_file) is True assert os.path.getsize(path_to_file) > 0 assert re.match(test_utils.CACHE_FILE_PATH_PATTERN__JPEG, path_to_file) with Image.open(path_to_file) as jpeg: assert jpeg.height in range(229, 231) assert jpeg.width == 256
def test_to_jpeg_no_size_no_page(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH) is True path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH, force=True) assert os.path.exists(path_to_file) is True assert os.path.getsize(path_to_file) > 0 assert re.match(test_utils.CACHE_FILE_PATH_PATTERN__JPEG, path_to_file) with Image.open(path_to_file) as jpeg: assert jpeg.height == 256 assert jpeg.width in range(180, 182)
def test_problem(): CUR_DIR = os.path.dirname(os.path.realpath(__file__)) CACHE_PATH = '/tmp/cache' PROBLEM_FILE = CUR_DIR + '/problem.ai' manager = PreviewManager(CACHE_PATH, create_folder=True) output = manager.get_jpeg_preview(file_path=PROBLEM_FILE, height=512, width=512, force=True) print(output)
def test_to_jpeg__default_size(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) path_to_file = manager.get_jpeg_preview( file_path=IMAGE_FILE_PATH, force=True ) assert os.path.exists(path_to_file) == True assert os.path.getsize(path_to_file) > 0 assert path_to_file == '/tmp/preview-generator-tests/cache/a0dcd8bf562212788204a09d85331d04-256x256.jpeg' # nopep8 with Image.open(path_to_file) as jpeg: assert jpeg.height in range(182, 184) assert jpeg.width == 256