image magic: add bmp and tiff + Readme

This commit is contained in:
SNoiraud 2021-02-09 12:54:44 +01:00 committed by Nick Hall
parent 4cd968daa6
commit ace772812a
2 changed files with 25 additions and 1 deletions

View File

@ -120,6 +120,24 @@ The following packages are optional:
Python bindings of fontconfig are required for displaying
genealogical symbols
* **magic**
Python magic bindings required to have better performances with image
processing.
If this module is not available, we continue to use Gdk.
This avoid to load the image in memory. This is a real improvement
when we have many big images.
Used in odfdoc, rtfdoc and webreport and tested with png, gif, jpeg, bmp, tiff
#
# file size with magic without (Gdk) ratio
# example 1 : 256k 0.00080 0.00575 7
# example 2 : 21M 0.00171 0.55860 326
Debian, Ubuntu, ... : python3-magic
Fedora, Redhat, ... : python3-magic
openSUSE : python-magic
ArchLinux : python-magic
Optional packages required by Third-party Addons
------------------------------------------------

View File

@ -168,12 +168,18 @@ def image_size(source):
# For performance reasons, we'll try to get image size from magic.
# This avoid to load the image in memory. This is a real improvement
# when we have many big images.
# Used in odfdoc, rtfdoc and webreport and tested with png, gif, jpeg
# Used in odfdoc, rtfdoc and webreport and tested with png, gif, jpeg,
# bmp, tiff
#
# file size with magic without (Gdk) ratio
# example 1 : 256k 0.00080 0.00575 7
# example 2 : 21M 0.00171 0.55860 326
img = magic.from_file(source)
found = img.find("TIFF")
if found == 0:
width = re.search('width=(\d+)', img).groups()
height = re.search('height=(\d+)', img).groups()
return (int(width[0]), int(height[0]))
found = img.find("precision")
if found > 0:
img = img[found:]