Skip to content

图片容器

Leslie Van edited this page Apr 24, 2023 · 1 revision

ImageContainer 类组成。

classDiagram
class ImageContainer{
        -path: Path
        -target_path: Path|None
        -img: Image
        -exif: dict
        -model: str
        -make: str
        -lens_model: str
        -lens_make: str
        -date: datetime
        -focal_length: str
        -focal_length_in_35mm_film: str
        -use_equivalent_focal_length: bool
        -f_number: str
        -exposure_time: str
        -iso: str
        -orientation
        -custom: str
        -logo: object
        -original_width
        -original_height
        -watermark_img: Image.Image
        +__init__(path: Path)
        +get_height()
        +get_width()
        +get_model()
        +get_make()
        +get_ratio()
        +get_img()
        +_parse_datetime() -> str
        +_parse_date() -> str
        +get_attribute_str(element: ElementConfig) -> str
        +get_param_str() -> str
        +get_original_height()
        +get_original_width()
        +get_original_ratio()
        +get_logo()
        +set_logo(logo: object) -> None
        +is_use_equivalent_focal_length(flag: bool) -> None
        +get_watermark_img() -> Image.Image
        +update_watermark_img(watermark_img: Image.Image) -> None
        +close()
    }
Loading

ImageContainer 是一个图片处理的类,用于从图片文件中读取 EXIF 信息,获取图片的基本属性,如拍摄时间、机器型号、镜头型号等,并且可以对这些属性进行一些处理,生成对应的字符串形式的属性值。其中,ImageContainer 通过对 Image 对象的操作,获取图片的基本信息。get_attribute_str 方法根据传入的 ElementConfig 对象中的属性名,返回对应的属性值,该方法用于将图片属性值组合成字符串。

此外,该对象还提供了其他一些方法,如设置和获取水印、获取图片高度和宽度、修改焦距等。在实际使用中,可以根据需要调用这些方法来处理图片和获取属性值,从而实现对图片的处理和生成水印。

图片容器在 main.py 中被实例化,图片容器的定义在 entity/image_container.py

示例

下面是一个简单的图片容器示例:

source_path = 'images/example.jpg'
# 通过路径实例化一个图片容器对象
container = ImageContainer(source_path)
# 分别获取照片的相机机型和相机厂商
model = container.get_model()
make = container.get_make()
# 关闭图片容器
container.close()
Clone this wiki locally