gpt4 book ai didi

objective-c - 在 Swift 中从小图像生成纹理 UIImage

转载 作者:可可西里 更新时间:2023-11-01 01:24:21 25 4
gpt4 key购买 nike

我想从现有的大小为 40 x 40 的 UIImage 创建一个全尺寸纹理图像,比方说 1000 x 1000。

我用来创建图像的代码是

let textureImg = UIImage(CGImage: CGImageCreateWithImageInRect(textureImage?.CGImage, CGRect(origin: CGPointZero, size: CGSizeMake(1000, 1000)))!)

其中 textureImage 是一些 40x40 的图像。

请让我知道实现此目的的任何正确方法,因为上面的代码没有给出正确的结果。整个图像变白。

最佳答案

以下是如何使用 CIAffineTile 将 40x40 的图像平铺成 500x500 的图像。请注意,我正在做一些不必要的强制展开等,因为我从现有代码中提取了它。这是经过测试的。

let inputImage = UIImage(named: "vermont.jpg")
let tiledImage = createTiledImage(inputImage:inputImage!)
print(inputImage!.size) // displays (40.0, 40.0)
print(tiledImage.size) // displays (500.0,500.0)
imageView.image = tiledImage

func createTiledImage(inputImage:UIImage) -> UIImage {
let filter = CIFilter(name: "CIAffineTile")
filter!.setValue(CIImage(image: inputImage), forKey: "inputImage")
let outputImage = filter?.outputImage?.applyingFilter("CIAffineTile", withInputParameters: nil).cropping(to: CGRect(x: 0, y: 0, width: 500, height: 500))
let ciCtx = CIContext(options: nil)
let cgimg = ciCtx.createCGImage(outputImage!, from: (outputImage?.extent)!)
return UIImage(cgImage: cgimg!)
}

关于objective-c - 在 Swift 中从小图像生成纹理 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42250657/

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