gpt4 book ai didi

ios - 在设备(iOS)上编码 ASTC?

转载 作者:行者123 更新时间:2023-11-28 18:08:50 33 4
gpt4 key购买 nike

是否有任何库能够按需将图像数据编码为 ASTC 纹理?我知道它是 CPU 密集型的,但还是很感兴趣。

最佳答案

import ImageIO
import MetalKit

let loader: MTKTextureLoader
let srcImage: CGImage
let ktxData = NSMutableData()
let dest = CGImageDestinationCreateWithData(ktxData, "org.khronos.ktx" as CFString, 1, nil)!
CGImageDestinationAddImage(dest, srcImage, 0, ["kCGImagePropertyASTCBlockSize": 0x88] as CFDictionary)
CGImageDestinationFinalize(dest)
try loader.newTexture(data: ktxData as Data, options: [])

kCGImagePropertyASTCBlockSize 选项显示了 8x8 block 大小(即每像素 2 位);唯一允许的大小是 4x4(每像素 8 位),这是默认值。

为了获得最佳性能,请将 kCGImageDestinationLossyCompressionQuality: 0.0 添加到 CGImageDestinationAddImageFromSource 的选项中。

其他可能的标志是kCGImagePropertyASTCUseLZFSEkCGImagePropertyASTCpreTwiddlekCGImagePropertyASTCFlipVerticallykCGImagePropertyASTCWeightChannelsEqually(所有 bool 值)。

关于ios - 在设备(iOS)上编码 ASTC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42357100/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com