我用它来生成一个大图像:
let context = CIContext(options: nil)
let bitmapImage: CGImageRef = context.createCGImage(image, fromRect: extent)!
CGContextSetInterpolationQuality(bitmapRef, CGInterpolationQuality.None)
CGContextScaleCTM(bitmapRef, scale, scale);
CGContextDrawImage(bitmapRef, extent, bitmapImage);
let scaledImage: CGImageRef = CGBitmapContextCreateImage(bitmapRef)!
return UIImage(CGImage: scaledImage)
它在iOS 9和10中运行良好,但不是8.我在调试器中得到了这个:
由于未捕获的异常而终止应用 'NSInvalidArgumentException',原因:' - [CIContext initWithOptions:]: 无法识别的选择器发送到实例0x7f868d5dc8e0'
另外。我尝试使用let context = CIContext()
代替。但是我在第二行得到了零。我正在使用Xcode 8和Swift 2.3。请在这件事上给予我帮助!谢谢!
答案 0 :(得分:10)
我不知道这是否有效,但我们应该尝试一下:让我们在Objective-C中写下这一行。所以:
guard
#import <Foundation/Foundation.h>
#import <CoreImage/CoreImage.h>
@interface ContextMaker : NSObject
+ (CIContext*) makeMeAContext;
@end
#import "ContextMaker.h"
@implementation ContextMaker
+ (CIContext*) makeMeAContext {
return [CIContext contextWithOptions:nil];
}
@end
#import "ContextMaker.h"
只需要花一点时间尝试一下,所以试一试,看看我们是否可以越过那条麻烦的线路......