Release 2f1c613a705625b8766637c1c130b6ab - Pillow and ffmpeg adaptions
This commit is contained in:
parent
664f5a7587
commit
0a67ebeb48
@ -167,7 +167,7 @@ class image(object):
|
|||||||
if type(orientation) == int and orientation > 8:
|
if type(orientation) == int and orientation > 8:
|
||||||
logger.warning('Orientation %s unknown for rotation', repr(orientation))
|
logger.warning('Orientation %s unknown for rotation', repr(orientation))
|
||||||
return False
|
return False
|
||||||
logger.debug('Rotating picture by %d°', angle)
|
logger.debug('Rotating picture by %d (deg)', angle)
|
||||||
self._im = self._im.rotate(angle, expand=True)
|
self._im = self._im.rotate(angle, expand=True)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
<coverage branch-rate="0.9674" branches-covered="89" branches-valid="92" complexity="0" line-rate="0.9777" lines-covered="351" lines-valid="359" timestamp="1591793830295" version="4.5">
|
<coverage branch-rate="0.9479" branches-covered="91" branches-valid="96" complexity="0" line-rate="0.9729" lines-covered="359" lines-valid="369" timestamp="1598724989106" version="4.5.2">
|
||||||
<!-- Generated by coverage.py: https://coverage.readthedocs.io -->
|
<!-- Generated by coverage.py: https://coverage.readthedocs.io -->
|
||||||
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
|
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
|
||||||
<sources/>
|
<sources/>
|
||||||
<packages>
|
<packages>
|
||||||
<package branch-rate="0.9674" complexity="0" line-rate="0.9777" name=".user_data.data.dirk.prj.unittest.media.pylibs.media">
|
<package branch-rate="0.9479" complexity="0" line-rate="0.9729" name=".user_data.data.dirk.prj.unittest.media.pylibs.media">
|
||||||
<classes>
|
<classes>
|
||||||
<class branch-rate="0.9565" complexity="0" filename="/user_data/data/dirk/prj/unittest/media/pylibs/media/__init__.py" line-rate="0.9934" name="__init__.py">
|
<class branch-rate="0.9565" complexity="0" filename="/user_data/data/dirk/prj/unittest/media/pylibs/media/__init__.py" line-rate="0.9934" name="__init__.py">
|
||||||
<methods/>
|
<methods/>
|
||||||
@ -218,7 +218,7 @@
|
|||||||
<line hits="1" number="35"/>
|
<line hits="1" number="35"/>
|
||||||
</lines>
|
</lines>
|
||||||
</class>
|
</class>
|
||||||
<class branch-rate="1" complexity="0" filename="/user_data/data/dirk/prj/unittest/media/pylibs/media/metadata.py" line-rate="0.9815" name="metadata.py">
|
<class branch-rate="0.9412" complexity="0" filename="/user_data/data/dirk/prj/unittest/media/pylibs/media/metadata.py" line-rate="0.9709" name="metadata.py">
|
||||||
<methods/>
|
<methods/>
|
||||||
<lines>
|
<lines>
|
||||||
<line hits="1" number="1"/>
|
<line hits="1" number="1"/>
|
||||||
@ -227,10 +227,10 @@
|
|||||||
<line hits="1" number="4"/>
|
<line hits="1" number="4"/>
|
||||||
<line hits="1" number="5"/>
|
<line hits="1" number="5"/>
|
||||||
<line hits="1" number="6"/>
|
<line hits="1" number="6"/>
|
||||||
<line hits="1" number="9"/>
|
<line hits="1" number="7"/>
|
||||||
<line hits="1" number="12"/>
|
<line hits="1" number="10"/>
|
||||||
<line hits="1" number="13"/>
|
<line hits="1" number="13"/>
|
||||||
<line hits="1" number="16"/>
|
<line hits="1" number="14"/>
|
||||||
<line hits="1" number="17"/>
|
<line hits="1" number="17"/>
|
||||||
<line hits="1" number="18"/>
|
<line hits="1" number="18"/>
|
||||||
<line hits="1" number="19"/>
|
<line hits="1" number="19"/>
|
||||||
@ -247,7 +247,7 @@
|
|||||||
<line hits="1" number="30"/>
|
<line hits="1" number="30"/>
|
||||||
<line hits="1" number="31"/>
|
<line hits="1" number="31"/>
|
||||||
<line hits="1" number="32"/>
|
<line hits="1" number="32"/>
|
||||||
<line hits="1" number="35"/>
|
<line hits="1" number="33"/>
|
||||||
<line hits="1" number="36"/>
|
<line hits="1" number="36"/>
|
||||||
<line hits="1" number="37"/>
|
<line hits="1" number="37"/>
|
||||||
<line hits="1" number="38"/>
|
<line hits="1" number="38"/>
|
||||||
@ -257,59 +257,59 @@
|
|||||||
<line hits="1" number="42"/>
|
<line hits="1" number="42"/>
|
||||||
<line hits="1" number="43"/>
|
<line hits="1" number="43"/>
|
||||||
<line hits="1" number="44"/>
|
<line hits="1" number="44"/>
|
||||||
<line hits="1" number="47"/>
|
<line hits="1" number="45"/>
|
||||||
<line hits="1" number="48"/>
|
<line hits="1" number="48"/>
|
||||||
<line hits="1" number="51"/>
|
<line hits="1" number="49"/>
|
||||||
<line hits="1" number="52"/>
|
<line hits="1" number="52"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="54"/>
|
<line hits="1" number="53"/>
|
||||||
<line hits="1" number="55"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="55"/>
|
||||||
<line hits="1" number="56"/>
|
<line hits="1" number="56"/>
|
||||||
<line hits="1" number="57"/>
|
<line hits="1" number="57"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
|
<line hits="1" number="58"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="60"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="60"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="61"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="61"/>
|
||||||
<line hits="1" number="63"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="62"/>
|
||||||
<line hits="1" number="64"/>
|
<line hits="1" number="64"/>
|
||||||
<line hits="1" number="66"/>
|
<line hits="1" number="65"/>
|
||||||
<line hits="1" number="67"/>
|
<line hits="1" number="67"/>
|
||||||
<line hits="1" number="69"/>
|
<line hits="1" number="68"/>
|
||||||
<line hits="1" number="70"/>
|
<line hits="1" number="70"/>
|
||||||
<line hits="1" number="71"/>
|
<line hits="1" number="71"/>
|
||||||
<line hits="1" number="74"/>
|
<line hits="1" number="72"/>
|
||||||
<line hits="1" number="75"/>
|
<line hits="1" number="75"/>
|
||||||
<line hits="1" number="76"/>
|
<line hits="1" number="76"/>
|
||||||
<line hits="1" number="78"/>
|
<line hits="1" number="77"/>
|
||||||
<line hits="1" number="79"/>
|
<line hits="1" number="79"/>
|
||||||
<line hits="1" number="81"/>
|
<line hits="1" number="80"/>
|
||||||
<line hits="1" number="82"/>
|
<line hits="1" number="82"/>
|
||||||
<line hits="1" number="83"/>
|
<line hits="1" number="83"/>
|
||||||
<line hits="1" number="84"/>
|
<line hits="1" number="84"/>
|
||||||
<line hits="1" number="85"/>
|
<line hits="1" number="85"/>
|
||||||
<line hits="0" number="86"/>
|
<line hits="1" number="86"/>
|
||||||
<line hits="0" number="87"/>
|
<line hits="0" number="87"/>
|
||||||
<line hits="0" number="88"/>
|
<line hits="0" number="88"/>
|
||||||
<line hits="1" number="90"/>
|
<line hits="0" number="89"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="91"/>
|
<line hits="1" number="91"/>
|
||||||
<line hits="1" number="92"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="92"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="93"/>
|
<line hits="1" number="93"/>
|
||||||
<line hits="1" number="94"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="94"/>
|
||||||
<line hits="1" number="95"/>
|
<line hits="1" number="95"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="97"/>
|
<line hits="1" number="96"/>
|
||||||
<line hits="1" number="98"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="98"/>
|
||||||
<line hits="1" number="99"/>
|
<line hits="1" number="99"/>
|
||||||
<line hits="1" number="100"/>
|
<line hits="1" number="100"/>
|
||||||
<line hits="1" number="101"/>
|
<line hits="1" number="101"/>
|
||||||
<line hits="1" number="102"/>
|
<line hits="1" number="102"/>
|
||||||
<line hits="1" number="103"/>
|
<line hits="1" number="103"/>
|
||||||
<line hits="1" number="106"/>
|
<line hits="1" number="104"/>
|
||||||
<line hits="1" number="107"/>
|
<line hits="1" number="107"/>
|
||||||
<line hits="1" number="108"/>
|
<line hits="1" number="108"/>
|
||||||
<line hits="1" number="109"/>
|
<line hits="1" number="109"/>
|
||||||
<line hits="1" number="110"/>
|
<line hits="1" number="110"/>
|
||||||
<line hits="1" number="111"/>
|
<line hits="1" number="111"/>
|
||||||
<line hits="1" number="112"/>
|
<line hits="1" number="112"/>
|
||||||
<line hits="1" number="114"/>
|
<line hits="1" number="113"/>
|
||||||
<line hits="1" number="116"/>
|
<line hits="1" number="115"/>
|
||||||
<line hits="1" number="117"/>
|
<line hits="1" number="117"/>
|
||||||
<line hits="1" number="118"/>
|
<line hits="1" number="118"/>
|
||||||
<line hits="1" number="119"/>
|
<line hits="1" number="119"/>
|
||||||
@ -322,67 +322,77 @@
|
|||||||
<line hits="1" number="126"/>
|
<line hits="1" number="126"/>
|
||||||
<line hits="1" number="127"/>
|
<line hits="1" number="127"/>
|
||||||
<line hits="1" number="128"/>
|
<line hits="1" number="128"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="129"/>
|
<line hits="1" number="129"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="130"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="130"/>
|
||||||
<line hits="1" number="131"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="131"/>
|
||||||
<line hits="1" number="132"/>
|
<line hits="1" number="132"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="133"/>
|
<line hits="1" number="133"/>
|
||||||
<line hits="1" number="134"/>
|
<line hits="1" number="134"/>
|
||||||
<line hits="1" number="135"/>
|
<line hits="1" number="135"/>
|
||||||
<line hits="1" number="139"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="136"/>
|
||||||
<line hits="1" number="140"/>
|
<line hits="1" number="137"/>
|
||||||
<line hits="1" number="141"/>
|
<line hits="1" number="138"/>
|
||||||
|
<line hits="1" number="142"/>
|
||||||
|
<line hits="1" number="143"/>
|
||||||
<line hits="1" number="144"/>
|
<line hits="1" number="144"/>
|
||||||
<line hits="1" number="145"/>
|
|
||||||
<line hits="1" number="146"/>
|
|
||||||
<line hits="1" number="147"/>
|
<line hits="1" number="147"/>
|
||||||
<line hits="1" number="148"/>
|
<line hits="1" number="148"/>
|
||||||
<line hits="1" number="149"/>
|
<line hits="1" number="149"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="150"/>
|
<line hits="1" number="150"/>
|
||||||
<line hits="1" number="151"/>
|
<line hits="1" number="151"/>
|
||||||
<line hits="1" number="152"/>
|
<line hits="1" number="152"/>
|
||||||
<line hits="1" number="153"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="153"/>
|
||||||
|
<line hits="1" number="154"/>
|
||||||
|
<line hits="1" number="155"/>
|
||||||
<line hits="1" number="156"/>
|
<line hits="1" number="156"/>
|
||||||
<line hits="1" number="157"/>
|
<line hits="1" number="159"/>
|
||||||
<line hits="1" number="170"/>
|
<line hits="1" number="160"/>
|
||||||
<line hits="1" number="171"/>
|
<line hits="1" number="173"/>
|
||||||
<line hits="1" number="188"/>
|
<line hits="1" number="174"/>
|
||||||
<line hits="1" number="189"/>
|
|
||||||
<line hits="1" number="190"/>
|
|
||||||
<line hits="1" number="191"/>
|
<line hits="1" number="191"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="192"/>
|
<line hits="1" number="192"/>
|
||||||
<line hits="1" number="193"/>
|
<line hits="1" number="193"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="194"/>
|
<line hits="1" number="194"/>
|
||||||
<line hits="1" number="195"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="195"/>
|
||||||
<line hits="1" number="196"/>
|
<line hits="1" number="196"/>
|
||||||
<line hits="1" number="197"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="197"/>
|
||||||
<line hits="1" number="198"/>
|
<line hits="1" number="198"/>
|
||||||
<line hits="1" number="199"/>
|
<line hits="1" number="199"/>
|
||||||
|
<line hits="1" number="200"/>
|
||||||
|
<line hits="1" number="201"/>
|
||||||
<line hits="1" number="202"/>
|
<line hits="1" number="202"/>
|
||||||
<line hits="1" number="203"/>
|
<line hits="1" number="205"/>
|
||||||
<line hits="1" number="204"/>
|
<line hits="1" number="206"/>
|
||||||
<line hits="1" number="207"/>
|
<line hits="1" number="207"/>
|
||||||
<line hits="1" number="208"/>
|
<line hits="1" number="208"/>
|
||||||
<line hits="1" number="209"/>
|
<line hits="1" number="209"/>
|
||||||
<line hits="1" number="210"/>
|
<line hits="1" number="210"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="211"/>
|
|
||||||
<line hits="1" number="212"/>
|
|
||||||
<line hits="1" number="213"/>
|
<line hits="1" number="213"/>
|
||||||
<line hits="1" number="214"/>
|
<line hits="1" number="214"/>
|
||||||
<line hits="1" number="215"/>
|
<line hits="1" number="215"/>
|
||||||
<line hits="1" number="216"/>
|
<line hits="1" number="216"/>
|
||||||
<line hits="1" number="217"/>
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="217"/>
|
||||||
<line hits="1" number="218"/>
|
<line hits="1" number="218"/>
|
||||||
<line hits="1" number="219"/>
|
<line hits="1" number="219"/>
|
||||||
<line hits="1" number="220"/>
|
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="221" number="220"/>
|
||||||
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="221"/>
|
<line hits="0" number="221"/>
|
||||||
<line hits="1" number="222"/>
|
<line hits="1" number="222"/>
|
||||||
<line hits="1" number="223"/>
|
<line hits="1" number="223"/>
|
||||||
<line hits="1" number="224"/>
|
<line hits="1" number="224"/>
|
||||||
|
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="226" number="225"/>
|
||||||
|
<line hits="0" number="226"/>
|
||||||
<line hits="1" number="227"/>
|
<line hits="1" number="227"/>
|
||||||
<line hits="1" number="228"/>
|
<line hits="1" number="228"/>
|
||||||
<line hits="1" number="229"/>
|
<line hits="1" number="229"/>
|
||||||
<line hits="1" number="230"/>
|
<line hits="1" number="230"/>
|
||||||
|
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="231"/>
|
||||||
|
<line hits="1" number="232"/>
|
||||||
|
<line hits="1" number="233"/>
|
||||||
|
<line hits="1" number="234"/>
|
||||||
|
<line hits="1" number="237"/>
|
||||||
|
<line hits="1" number="238"/>
|
||||||
|
<line hits="1" number="239"/>
|
||||||
|
<line hits="1" number="240"/>
|
||||||
</lines>
|
</lines>
|
||||||
</class>
|
</class>
|
||||||
</classes>
|
</classes>
|
||||||
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
16
metadata.py
16
metadata.py
@ -1,6 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
import math
|
||||||
import media
|
import media
|
||||||
import subprocess
|
import subprocess
|
||||||
import time
|
import time
|
||||||
@ -129,7 +130,9 @@ def __get_exif_data__(full_path):
|
|||||||
for key in conv_key_dict:
|
for key in conv_key_dict:
|
||||||
if key in exif:
|
if key in exif:
|
||||||
tp, name = conv_key_dict[key]
|
tp, name = conv_key_dict[key]
|
||||||
value = tp(exif[key])
|
raw_value = exif[key]
|
||||||
|
logger.debug("Converting %s out of %s", name, repr(raw_value))
|
||||||
|
value = tp(raw_value)
|
||||||
if value is not None:
|
if value is not None:
|
||||||
rv[name] = value
|
rv[name] = value
|
||||||
return rv
|
return rv
|
||||||
@ -200,6 +203,9 @@ def __int_conv__(value):
|
|||||||
|
|
||||||
|
|
||||||
def __num_denum_conv__(data):
|
def __num_denum_conv__(data):
|
||||||
|
try:
|
||||||
|
return float(data)
|
||||||
|
except TypeError:
|
||||||
num, denum = data
|
num, denum = data
|
||||||
return num / denum
|
return num / denum
|
||||||
|
|
||||||
@ -208,12 +214,16 @@ def __gps_conv__(data):
|
|||||||
def lat_lon_cal(lon_or_lat):
|
def lat_lon_cal(lon_or_lat):
|
||||||
lon_lat = 0.
|
lon_lat = 0.
|
||||||
fac = 1.
|
fac = 1.
|
||||||
for num, denum in lon_or_lat:
|
for data in lon_or_lat:
|
||||||
try:
|
try:
|
||||||
lon_lat += float(num) / float(denum) * fac
|
lon_lat += float(data[0]) / float(data[1]) * fac
|
||||||
|
except TypeError:
|
||||||
|
lon_lat += data * fac
|
||||||
except ZeroDivisionError:
|
except ZeroDivisionError:
|
||||||
return 0.
|
return 0.
|
||||||
fac *= 1. / 60.
|
fac *= 1. / 60.
|
||||||
|
if math.isnan(lon_lat):
|
||||||
|
return 0.
|
||||||
return lon_lat
|
return lon_lat
|
||||||
try:
|
try:
|
||||||
lon = lat_lon_cal(data[0x0004])
|
lon = lat_lon_cal(data[0x0004])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user