png

Tests Documentation

Swift PNG 是一个无需 Foundation 框架、跨平台的框架,用于解码、检查、编辑和编码 PNG 图像。该框架完全使用 Swift 编写,可以在所有 Swift 平台上编译并提供一致的行为。该库还在 Linux、macOS 和 Windows 上提供内置的文件系统支持。

该库由原生 Swift DEFLATE 实现驱动,可以作为一个 独立模块 使用。

Swift PNGApache 2.0 许可证可用示例程序 是公共领域,可以自由修改。

Swift PNG文档可在 Swiftinit 上查阅!

要求

swift-png 库需要 Swift 5.10 或更高版本。

平台 状态
🐧 Linux Tests
🍏 Darwin Tests
🍏 Darwin (iOS) iOS
🍏 Darwin (tvOS) tvOS
🍏 Darwin (visionOS) visionOS
🍏 Darwin (watchOS) watchOS

检查最低部署要求

入门指南

要在项目中使用 Swift PNG,请将此描述符添加到 Package.swift 文件中的 dependencies 列表中

.package(url: "https://github.com/tayloraswift/swift-png", .from("4.4.0"))

基本用法

解码图像

import PNG
func decode(png path:String) throws
{
    guard
    let image:PNG.Image = try .decompress(path: path)
    else
    {
        // failed to access file from file system
    }

    let rgba:[PNG.RGBA<UInt8>] = image.unpack(as: PNG.RGBA<UInt8>.self),
        size:(x:Int, y:Int)    = image.size
    // ...
}

编码图像

func encode(png path:String, size:(x:Int, y:Int), pixels:[PNG.RGBA<UInt8>]) throws
{
    let image:PNG.Image = .init(packing: pixels, size: size,
        layout: .init(format: .rgba8(palette: [], fill: nil)))
    try image.compress(path: path, level: 9)
}

特性

另请参阅