ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PowerToys Image Resizer DSC 配置参考:以声明式配置管理图像缩放模块

PowerToys Image Resizer DSC 配置参考:以声明式配置管理图像缩放模块 PowerToys Image Resizer DSC 配置参考以声明式配置管理图像缩放模块【免费下载链接】PowerToysMicrosoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows项目地址: https://gitcode.com/GitHub_Trending/po/PowerToysMicrosoft PowerToys 的 Image Resizer 是一个 Windows Shell 扩展工具允许用户直接在文件资源管理器右键菜单中批量缩放一张或多张图像。随着 PowerToys 引入 DSCDesired State Configurationv3 支持Image Resizer 的预设尺寸、JPEG 质量、文件名模板等所有可配置项都可以通过PowerToys.DSC.exe命令行、标准 DSC YAML 配置文档或 WinGet Configuration 三种方式进行声明式管理。读完本文你可以掌握 ImageResizer 模块全部 DSC 配置属性的类型、取值范围与默认值并能为 Web 开发、摄影工作流、社交媒体等场景编写可直接落地的自动化配置。模块概述与工作方式DSC 中的ImageResizer模块资源类型Microsoft.PowerToys/ImageResizerSettings管理的是 PowerToys Image Resizer 工具的配置。该工具支持自定义尺寸预设预设名称、宽高、单位、缩放模式是否仅缩小不放大图像、是否覆盖原文件是否忽略 EXIF 方向信息JPEG 输出质量、PNG 交错、TIFF 压缩选项缩放后文件的重命名模板是否保留原始修改时间、以及不支持格式的回退编码器。从源码结构看这套 DSC 属性与 PowerToys 设置系统共用同一份属性模型 ImageResizerProperties每个属性以imageresizer_前缀持久化到设置 JSON 中如imageresizer_jpegQualityLevelDSC 的set操作最终更新的就是这些设置项。可配置属性详解以下属性均可在properties下配置与文档 doc/dsc/modules/ImageResizer.md 保持一致。ImageResizerSizes预设尺寸列表定义 Image Resizer 界面中可选的预设尺寸。类型对象数组对象属性Namestring预设的显示名称Widthinteger宽度值Heightinteger高度值Unitstring计量单位取值为Pixel、Percent、Centimeter、InchFitstring缩放模式取值为Fit、Fill、Stretch。从源码结构看这些取值对应内部枚举 ResizeUnit 与 ResizeFitResizeFit: Fill/Fit/StretchResizeUnit: Centimeter/Inch/Percent/Pixel。若不配置ImageResizerSizesPowerToys 使用内置的四个默认预设Small 854×480、Medium 1366×768、Large 1920×1080、Phone 320×568均为 Pixel 单位、Fit 模式见 ImageResizerProperties 构造函数。预设数据在设置 JSON 中以imageresizer_sizes.value数组形式存储序列化模型见 ImageresizerSizes。ImageresizerSelectedSizeIndex默认选中的预设类型integer默认值0设置界面中默认高亮的预设索引0 基。ImageresizerShrinkOnly仅缩小类型boolean默认值false启用后只有当图像比目标尺寸更大时才会被缩小较小的图像保持原尺寸不被放大。ImageresizerReplace覆盖原文件类型boolean默认值false启用后缩放结果直接替换原始文件关闭时生成新文件、保留原图。ImageresizerIgnoreOrientation忽略 EXIF 方向类型boolean默认值true控制缩放时是否忽略 EXIF 方向数据。对照片场景建议设为false让方向信息参与处理。ImageresizerJpegQualityLevelJPEG 质量等级类型integer取值范围1–100默认值90设置 JPEG 编码器输出质量对应 ImageResizerProperties 中的默认值90。ImageresizerPngInterlaceOptionPNG 交错选项类型integer允许值0不交错、1交错默认值0ImageresizerTiffCompressOptionTIFF 压缩选项类型integer允许值0不压缩、1LZW 压缩、2ZIP 压缩默认值0ImageresizerFileName重命名模板类型string默认值%1 (%2)占位符%1原始文件名%2所选尺寸名称%3所选宽度%4所选高度%5实际宽度%6实际高度例如模板%1_resized_%2会将photo.jpg用预设Web Small缩放后命名为photo_resized_Web Small.jpg。ImageresizerKeepDateModified保留修改时间类型boolean默认值false启用后缩放生成的文件保留原文件的“修改时间”戳。ImageresizerFallbackEncoder回退编码器类型string允许值png、jpg、bmp、tiff、gif默认值png当源格式无法按原格式重新编码时使用的回退编码器。从源码结构看Image Resizer UI 内部以 WIC 编码器 GUID 记录该设置如 GUID19e4a5aa-5662-4fc5-a0c0-1758028e1057映射到 JPEG 编码器见 CodecHelper 与 Settings.csDSC 层则按文档以格式名称作为输入契约。配置示例以下五个示例完整继承自 ImageResizer DSC 模块文档。示例 1自定义预设尺寸直接执行通过 PowerShell 哈希表构建 JSON 并调用PowerToys.DSC.exe set直接下发三个常用预设$config { settings { properties { ImageResizerSizes ( { Name Small Width 640 Height 480 Unit Pixel Fit Fit }, { Name Medium Width 1280 Height 720 Unit Pixel Fit Fit }, { Name Large Width 1920 Height 1080 Unit Pixel Fit Fit } ) } name ImageResizer version 1.0 } } | ConvertTo-Json -Depth 10 -Compress PowerToys.DSC.exe set --resource settings --module ImageResizer --input $config示例 2质量与格式选项DSC 文档使用标准 DSC v3 配置文档下发质量参数dsc config set --file imageresizer-quality.dsc.yaml# imageresizer-quality.dsc.yaml $schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json resources: - name: Configure Image Resizer quality type: Microsoft.PowerToys/ImageResizerSettings properties: settings: properties: ImageresizerJpegQualityLevel: 95 ImageresizerShrinkOnly: true ImageresizerKeepDateModified: true name: ImageResizer version: 1.0示例 3WinGet 一键安装并配置将安装与配置合并到同一份 WinGet DSC 文档中实现“装完即用”的 Web 优化预设winget configure winget-imageresizer.yaml# winget-imageresizer.yaml $schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2023/08/config/document.json metadata: winget: processor: dscv3 resources: - name: Install PowerToys type: Microsoft.WinGet.DSC/WinGetPackage properties: id: Microsoft.PowerToys source: winget - name: Configure Image Resizer type: Microsoft.PowerToys/ImageResizerSettings properties: settings: properties: ImageResizerSizes: - Name: Thumbnail Width: 320 Height: 240 Unit: Pixel Fit: Fit - Name: Web Small Width: 800 Height: 600 Unit: Pixel Fit: Fit - Name: Web Large Width: 1920 Height: 1080 Unit: Pixel Fit: Fit ImageresizerJpegQualityLevel: 85 ImageresizerFileName: %1_resized_%2 name: ImageResizer version: 1.0仓库中也提供同类安装并配置的参考示例文件可对照 installAndConfiguration.winget。示例 4摄影工作流高质量 元数据保留dsc config set --file imageresizer-photo.dsc.yaml# imageresizer-photography.dsc.yaml $schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json resources: - name: Photography configuration type: Microsoft.PowerToys/ImageResizerSettings properties: settings: properties: ImageresizerJpegQualityLevel: 100 ImageresizerKeepDateModified: true ImageresizerIgnoreOrientation: false ImageresizerShrinkOnly: true name: ImageResizer version: 1.0该组合把质量拉满、保留拍摄时间戳、尊重 EXIF 方向并只缩小不放大适合照片归档前的批量处理。示例 5社交媒体预设$config { settings { properties { ImageResizerSizes ( { Name Instagram Square; Width 1080; Height 1080; Unit Pixel; Fit Fill }, { Name Instagram Portrait; Width 1080; Height 1350; Unit Pixel; Fit Fill }, { Name Facebook Cover; Width 820; Height 312; Unit Pixel; Fit Fill }, { Name Twitter Header; Width 1500; Height 500; Unit Pixel; Fit Fill } ) ImageresizerJpegQualityLevel 90 } name ImageResizer version 1.0 } } | ConvertTo-Json -Depth 10 -Compress PowerToys.DSC.exe set --resource settings --module ImageResizer --input $config注意这里使用Fill模式平台封面要求“填满画框”Fill会裁剪到精确目标尺寸与保留完整画面的Fit形成互补。典型使用场景Web 开发面向 Web 优化的最小配置resources: - name: Web optimization type: Microsoft.PowerToys/ImageResizerSettings properties: settings: properties: ImageresizerJpegQualityLevel: 85 ImageresizerShrinkOnly: true name: ImageResizer version: 1.085 的质量等级兼顾体积与观感ShrinkOnly保证小图不被放大虚化。内容创作面向社交平台与内容产出的预设resources: - name: Content creation type: Microsoft.PowerToys/ImageResizerSettings properties: settings: properties: ImageResizerSizes: - Name: HD Width: 1920 Height: 1080 Unit: Pixel Fit: Fit ImageresizerJpegQualityLevel: 90 name: ImageResizer version: 1.0底层实现与验证路径属性模型所有 DSC 属性与设置界面共用 ImageResizerProperties其中Fit/Unit的枚举值、各属性默认值如 JPEG 质量默认 90、ignoreOrientation默认 true可在此直接核对DSC 资源与命令settings资源的 get/set/test/export/schema/manifest 能力由 PowerToys.DSC 实现命令分别对应 SetCommand、GetCommand 等资源逻辑见 SettingsResource测试佐证SettingsTests 覆盖了imageresizer_*设置 JSON 的序列化/反序列化ImageResizerEndToEndTests 中对imageresizer_fallbackEncoder等键值做了端到端断言可用来验证配置确实落到设置存储工具本体Image Resizer 由 Shell 扩展 DLLsrc/modules/imageresizer/dll/、WPF UIsrc/modules/imageresizer/ui/与 CLIsrc/modules/imageresizer/ImageResizerCLI/组成右键菜单在 Windows 10/11 上采用双注册方案详见开发文档 Image Resizer 架构说明。相关文档Settings Resource 参考settings 资源的全部操作modules/get/set/test/export/schema/manifest与 25 个受支持模块清单PowerToys DSC 总览三种使用方式直接执行、DSC、WinGet与通用操作MeasureTool 模块文档同一 DSC 体系下的另一个模块参考Image Resizer 开发文档Shell 扩展注册、调试方法与右键菜单出现逻辑。适用前提与限制DSC 配置要求目标机器已安装支持 DSC 的 PowerToys 版本PowerToys.DSC.exe随安装包提供属性名区分大小写ImageResizerSizes为 DSC 层契约名称而设置 JSON 内部键为imageresizer_sizesPNG 交错与 TIFF 压缩的 DSC 取值0/1/2是对外契约与 UI 内部枚举 PngInterlaceOption、TiffCompressOption 的编号并不一致编写配置时应以本文列出的 DSC 允许值为准。【免费下载链接】PowerToysMicrosoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows项目地址: https://gitcode.com/GitHub_Trending/po/PowerToys创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表