gpt4 book ai didi

ios - 使用 UITableView 中的核心图形将图像过滤器应用于图像

转载 作者:搜寻专家 更新时间:2023-10-31 22:55:37 24 4
gpt4 key购买 nike

我已经使用 core graphics 在 tableview 中以灰度显示图像。但是表格滚动速度非常慢。有什么解决方案可以加快滚动速度。

最佳答案

您可能需要按照以下步骤操作:

  1. 假设您在 viewDidLoad 中准备了一组图像,称为 originalImages
  2. 在您的 viewDidLoad 中,您必须滚动所有 originalImages 将灰度过滤器应用于每个图像并将新图像附加到名为 grayScaleImages 的新数组中
  3. 使用这样的 grayScaleImages 作为您的 UITableViewDataSource(和委托(delegate))的枢轴。

一个非常粗略的例子可能是:

import UIKit

class ViewController:UIViewController, UITableViewDataSource {
var originalImages:[UIImage]?
var grayScaleImages:[UIImage]?

override func viewDidLoad() {
super.viewDidLoad()

// load original images
self.originalImages = [UIImage]()
//... load whatever here (eg: from bundle) ...

// load gray scale images
self.grayScaleImages = [UIImage]()
self.originalImages?.forEach { image in
let grayScaleImage = image.applyGrayScale()
self.grayScaleImages?.append(grayScaleImage)
}
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.grayScaleImages?.count ?? 0
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "yourCellID", for: indexPath)
cell.imageView?.image = self.grayScaleImages?[indexPath.row]
return cell
}
}

extension UIImage {
func applyGrayScale() -> UIImage {
let filter = CIFilter(name: "CIPhotoEffectNoir")!
filter.setValue(CIImage(image: self), forKey: kCIInputImageKey)
let output = filter.outputImage!
let cgImage = CIContext(options: nil).createCGImage(output, from: output.extent)!
return UIImage(cgImage: cgImage, scale: scale, orientation: imageOrientation)
}
}

关于ios - 使用 UITableView 中的核心图形将图像过滤器应用于图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48416722/

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