Pillow
Description​
Pillow is a fork of the PIL (Python Imaging Library), designed to add image processing capabilities to Python. It enables opening, manipulating, and saving many different image file formats. The library offers a wide range of file format support, basic and advanced imaging operations, and is designed for easy integration with other Python libraries.
General details​
- Developer(s): Alex Clark and and many other contributors.
- Open source: Yes
- Language(s): Python, with some C for performance.
- Repository: https://github.com/python-pillow/Pillow
- License: Historical Permission Notice and Disclaimer (HPND)
- Operating system(s): OS Independent (can run on any operating system that supports Python)
- Actively maintained: Yes (last code commit was one week ago).
Intended use on the device​
The SOUP is used in the medical device for the following specific purposes only:
- Store in memory the clinical images that users send to the web API, so that the software components can then apply modifications to this image representation.
- Apply basic processing techniques (resizing, format conversion, etc.) to clinical images, but only those operations that do not cause a bottleneck in the processing pipelines.
Requirements​
For the integration and safe usage of this SOUP within a software system, it's important to outline both functional and performance requirements. These requirements help mitigate risks and ensure compatibility and performance standards are met.
Functional​
- Image file operations: Ability to open, save, and manage various image file formats (JPEG, PNG, GIF, TIFF, BMP, etc.).
- Image processing: Capabilities such as resizing, cropping, rotating, and flipping images.
- Color space conversion: Support for converting images between different color spaces (e.g., RGB, RGBA, CMYK).
- Filtering and effects: A range of built-in filters and effects for image enhancement and manipulation (e.g., blur, contour, edge detection).
- Drawing: Tools to draw text, lines, and shapes directly onto images.
- Integration: Compatibility with popular Python libraries such as NumPy for advanced mathematical operations.
Performance​
- Efficiency: Optimized for fast processing of images, especially important for applications requiring real-time image manipulation.
- Resource utilisation: Minimal memory footprint and efficient CPU usage to accommodate systems with limited resources.
- Scalability: Ability to handle large images and batch processing of multiple images with consistent performance.
- Robustness: Error handling and stability when dealing with corrupted or unsupported image formats.
System requirements​
Establishing minimum software and hardware requirements is important to mitigate risks, such as security vulnerabilities, performance issues, or compatibility problems, and to ensure that the SOUP functions effectively within the intended environment.
Software​
After evaluation, we find that there are no specific software requirements for this SOUP. It works properly on standard computing devices, which includes our environment.
Hardware​
After evaluation, we find that there are no specific hardware requirements for this SOUP. It works properly on standard computing devices, which includes our environment.
Documentation​
The official SOUP documentation can be found at: https://pillow.readthedocs.io/en/stable/
Additionally, a criterion for validating the SOUP is that all the items of the following checklist are satisfied:
- The vendor maintains clear and comprehensive documentation of the SOUP describing its functional capabilities, user guidelines, and tutorials, which facilitates learning and rapid adoption.
- The documentation for the SOUP is regularly updated and clearly outlines every feature utilized by the medical device, doing so for all integrated versions of the SOUP.
Related software items​
We catalog the interconnections between the microservices within our software architecture and the specific versions of the SOUP they utilise. This mapping ensures clarity and traceability, facilitating both the understanding of the system's dependencies and the management of SOUP components.
Although the title of the section mentions software items, the relationship with SOUP versions has been established with microservices (also considered software items, by the way) because each one is inside a different Docker container and, therefore, has its own isolated runtime environment.
SOUP version | Software item(s) |
---|---|
10.2.0 | APASI-API APASI-SEGMENTER APASI-CLASSIFIER APULSI ASCORAD-API ASCORAD-SEGMENTER ASCORAD-CLASSIFIER ICD MULTICLASS CLASSIFIER ICD BINARY CLASSIFIER BINARY REFERRER |
Related risks​
The following are risks applicable to this SOUP from the table found in document R-TF-013-002 Risk management record_2023_001
:
- 58. SOUP presents an anomaly that makes it incompatible with other SOUPs or with software elements of the device.
- 59. SOUP is not being maintained nor regularly patched.
- 60. SOUP presents cybersecurity vulnerabilities.
Lists of published anomalies​
The incidents, anomalies, known issues or changes between versions for this SOUP can be found at:
History of evaluation of SOUP anomalies​
28 Feb 2024​
- Reviewer of the anomalies: Alejandro Carmena Magro
- Version(s) of the SOUP reviewed: 10.2.0
No anomalies have been found.
Record signature meaning​
- Author: JD-004
- Reviewer: JD-003
- Approver: JD-005