diff --git a/frontend/src/utils/utils.js b/frontend/src/utils/utils.js index 418ffd8560f..e4ba41697ad 100644 --- a/frontend/src/utils/utils.js +++ b/frontend/src/utils/utils.js @@ -130,7 +130,7 @@ export const Utils = { return false; } var file_ext = filename.substr(filename.lastIndexOf('.') + 1).toLowerCase(); - var image_exts = ['gif', 'jpeg', 'jpg', 'png', 'ico', 'bmp', 'tif', 'tiff', 'jfif']; + var image_exts = ['gif', 'jpeg', 'jpg', 'png', 'ico', 'bmp', 'tif', 'tiff', 'jfif', 'heic']; if (image_exts.indexOf(file_ext) != -1) { return true; } else { diff --git a/requirements.txt b/requirements.txt index 792f8238712..1ab295868b0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -28,3 +28,4 @@ python-ldap==3.4.* pypinyin==0.52.* PyMuPDF==1.24.* dnspython==2.6.* +pillow-heif==0.18.* diff --git a/seahub/thumbnail/utils.py b/seahub/thumbnail/utils.py index 01950682432..e474a84ea43 100644 --- a/seahub/thumbnail/utils.py +++ b/seahub/thumbnail/utils.py @@ -15,6 +15,7 @@ from urllib.request import urlretrieve from PIL import Image + from seaserv import get_file_id_by_path, get_repo, get_file_size, \ seafile_api @@ -23,6 +24,12 @@ from seahub.settings import THUMBNAIL_IMAGE_SIZE_LIMIT, \ THUMBNAIL_EXTENSION, THUMBNAIL_ROOT, THUMBNAIL_IMAGE_ORIGINAL_SIZE_LIMIT,\ ENABLE_VIDEO_THUMBNAIL, THUMBNAIL_VIDEO_FRAME_TIME +try: + from pillow_heif import register_heif_opener + register_heif_opener() +except ImportError: + pass + # Get an instance of a logger logger = logging.getLogger(__name__)