Add Olympus ORF support

This commit is contained in:
Jean-Claude 2023-12-20 23:06:36 +01:00
parent a4fd94b90f
commit c31d0bc695
Signed by: jeanclaude
GPG Key ID: 8A300F57CBB9F63E
2 changed files with 8 additions and 0 deletions

View File

@ -11,6 +11,7 @@ The following RAW formats are currently supported:
| Canon Raw 2 | `.cr2` | [dcraw](https://www.dechifro.org/dcraw/) |
| Canon Raw 3 | `.cr3` | [exiftool](https://exiftool.org/) |
| Fujifilm RAF | `.raf` | [dcraw](https://www.dechifro.org/dcraw/) |
| Olympus ORF | `.orf` | [dcraw](https://www.dechifro.org/dcraw/) |
### Installation
- Depending on the RAW file format, different dependencies are required. Please see the list above and install the required dependencies.

View File

@ -10,13 +10,19 @@ from vimiv.utils import log
_logger = log.module_logger(__name__)
def test_raf(header: bytes, _f: BinaryIO) -> bool:
return header[:15] == b"FUJIFILMCCD-RAW"
def test_cr2(header: bytes, _f: BinaryIO) -> bool:
return header[:2] in (b"II", b"MM") and header[8:10] == b"CR"
def test_orf(header: bytes, _f: BinaryIO) -> bool:
return header[:4] == b"IIRO"
@lru_cache(maxsize=40)
def load_cr2(path) -> QPixmap:
"""Extract the thumbnail from the image and initialize QPixmap"""
@ -128,5 +134,6 @@ def init(info: str, *_args: Any, **_kwargs: Any) -> None:
api.add_external_format("raf", test_raf, load_cr2)
api.add_external_format("cr2", test_cr2, load_cr2)
api.add_external_format("cr3", test_cr3, load_cr3)
api.add_external_format("orf", test_orf, load_cr2)
_logger.debug("Initialized RawPrev")