我正在制作一个iOS应用程序,它有一个过程可以用几个UIImageViews来切换很多图片(一个循环来设置一组图像的UIImageView的图像属性)。有时候,有些图像需要一些图形效果,比如乘法。
最简单的方法是使用CIFilter来完成这项工作,但问题是CALayer on iOS不支持"filters“属性,因此在设置”iOS“属性之前,需要将效果应用于图像。但是当你经常刷新屏幕时,这真的太慢了。
接下来,我尝试使用Core直接使用UIGraphics上下文和kCGBlendModeMultiply进行乘法。这确实比使用CIFilter要快得多,但是由于您必须在呈现图像之前应用乘法
我正在更新现有的应用程序以支持iOS 12,CIFilter出现了奇怪的问题。
这是一个函数generate()的简单类
class QRGenerator {
static func generate(from string: String) -> UIImage? {
let context = CIContext()
let data = string.data(using: String.Encoding.ascii)
if let filter = CIFilter(name: "CIQRCodeGenerato
我有一个CIImage,比方说500x250像素,我试图平铺它,所以它将变成1000x500图片,每一行有两张图片,如下所示:
我正在尝试用Cocoa上的CIAffineTile来实现这一点(我不确定这是否是最合适的过滤器)。
正如预期的那样,来自苹果的文档是非常模糊和加密的。
显然,过滤器必须被称为不同的iOS和OSX,但OSX部分是神秘的。
这是我的代码:
我所做的是,我创建的瓷砖过滤器,而不是裁剪它的两倍的图片大小在每个方向+ 2,以创建两个像素之间的空间。
// the picture has to translate this amount?
CGAffi