Tag: cifilter

如何输出CIFilter到相机视图?

我只是从Objective-C开始,我试图创build一个简单的应用程序,它显示相机视图上的模糊效果。 我得到了相机输出与AVFoundation框架一起工作。 现在,我试图挂钩核心图像框架,但不知道如何,苹果文档是我困惑,search指南和教程在线导致没有结果。 先谢谢您的帮助。 #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController () @property (strong ,nonatomic) CIContext *context; @end @implementation ViewController AVCaptureSession *session; AVCaptureStillImageOutput *stillImageOutput; -(CIContext *)context { if(!_context) { _context = [CIContext contextWithOptions:nil]; } return _context; } – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } […]

为什么我不能在我的Swift iOS应用程序中使用CIFilter将图像反转为原始图像

我正在做一个简单的应用程序。 它有一个图像视图与预先加载的图像和一个button。 按下button时应该反转图像视图中的图像。 它第一次工作,但我希望它再次按下button时,将图像反转回原来的forms。 然而它在第二次按下button时崩溃。 以下是来自ViewController.swift的相关代码: @IBOutlet weak var imageView: UIImageView! @IBOutlet weak var invertButton: UIButton! @IBAction func invertButtonPressed(sender: UIButton) { let beginImage = CIImage(image: imageView.image!) let filter = CIFilter(name: "CIColorInvert")! filter.setValue(beginImage, forKey: kCIInputImageKey) imageView.image = UIImage(CIImage: (filter.outputImage)!) } 基本上, beginImage第二次成为nil ,我不知道为什么。 我已经尝试通过将这些密集的行分割为尽可能多的分配,但是这个CIImage构造函数发生了一些神秘的事情。 有任何想法吗?

video在应用AVVideoComposition后旋转

将AVVideoComposition应用到我的AVPlayerItem ,我应用的滤镜可以工作,但是video在AVPlayerLayer旋转。 我知道这个问题是不是与过滤的框架,因为如果我在UIImageView显示帧,框架呈现100%正确。 video正确显示, 直到我申请一个videoComposition 。 在AVPlayerLayer上设置videoGravity不起作用。 video顺时针旋转90度并在图层中拉伸。 本质上,在AVPlayerLayer通过AVMutableVideoComposition提供之前,video在AVPlayerLayer完美显示。 一旦发生这种情况,video旋转了-90º,然后在过滤之前缩放到与video尺寸相同的尺寸。 这向我暗示,它并没有意识到它的转换已经是正确的了,所以它正在重新应用自身的转换。 为什么会发生这种情况,我该如何解决? 这里是一些代码: private func filterVideo(with filter: Filter?) { if let player = player, let playerItem = player.currentItem { let composition = AVMutableComposition() let videoAssetTrack = playerItem.asset.tracks(withMediaType: .video).first let videoCompositionTrack = composition.addMutableTrack(withMediaType: .video, preferredTrackID: kCMPersistentTrackID_Invalid) try? videoCompositionTrack?.insertTimeRange(CMTimeRange(start: kCMTimeZero, duration: playerItem.asset.duration), of: videoAssetTrack!, at: kCMTimeZero) videoCompositionTrack?.preferredTransform […]

CIFilter输出图像无

我正在使用核心图像,并将CIFilter棕褐色调应用于图像。 我在viewDidLoad中运行一次filter,然后立即调用另一个函数,再次添加filter。 出于某种原因,当我尝试访问输出图像,应用程序崩溃,并说输出图像是零。 任何人都知道这是为什么发生? 谢谢 import UIKit class ViewController: UIViewController { @IBOutlet weak var myimage: UIImageView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let image = CIImage(image: myimage.image) let filter = CIFilter(name: "CISepiaTone") filter.setDefaults() filter.setValue(image, forKey: kCIInputImageKey) myimage.image = UIImage(CIImage: filter.outputImage) self.reapplyFilter() } func […]

如何使用Swift模糊UIImageView中的现有图像?

设置很简单。 带有UIImageView的ViewController,分配了一个图像。 UIButton在单击时会模糊UIImageView中的图像。 import UIKit class ViewController: UIViewController { @IBOutlet weak var bg: UIImageView! @IBAction func blur(_ sender: Any) { let inputImage = CIImage(cgImage: (bg.image?.cgImage)!) let filter = CIFilter(name: "CIGaussianBlur") filter?.setValue(inputImage, forKey: "inputImage") filter?.setValue(10, forKey: "inputRadius") let blurred = filter?.outputImage bg.image = UIImage(ciImage: blurred!) } } 点击button时,屏幕变成白色。 无法弄清楚我做错了什么。 任何人都知道我在做什么错了?

使用CIFilter后,图像自动旋转

我正在编写一个让用户拍照并编辑的应用程序。 我正在使用UISliders实现亮度/对比度/饱和度的工具,我正在使用Core Image Filter类。 当我打开应用程序,我可以拍照并正确显示。 但是,如果我select编辑图片,然后使用任何描述的滑块工具,图像将逆时针旋转90度。 这里是有问题的代码: – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.navigationItem.hidesBackButton = YES; //hide default nav //get image to display DBConnector *dbconnector = [[DBConnector alloc] init]; album.moments = [dbconnector getMomentsForAlbum:album.title]; Moment *mmt = [album.moments firstObject]; _imageView.image = [mmt.moment firstObject]; CGImageRef aCGImage = _imageView.image.CGImage; CIImage […]

UIImageJPEGRepresentation返回nil

我使用CIFilters将图像转换为灰度并应用一些image processing效果。 在UIImageView中显示输出结果 图像显示并已按预期进行了修改。 但是,调用UIImageJPEGRepresentation似乎每次都不返回任何数据。 它从来没有工作。 调用UIImageJPEGRepresentation使用原始的彩色图像工作正常。 这里发生了什么? 为什么在显示图像时jpeg转换失败可以正常工作? 不会引发任何exception(设置exception断点,没有命中),控制台中不会显示任何消息。 let _cicontext = CIContext(options:nil) // Set up grayscale and blur filters: let grayIze = CIFilter(name: "CIColorControls") let blur = CIFilter(name: "CIGaussianBlur") grayIze.setValue(0, forKey:kCIInputSaturationKey) grayIze.setValue(0.5, forKey: kCIInputBrightnessKey) blur.setValue(4, forKey: kCIInputRadiusKey) // Go! let originalImage = CIImage(image: colorImageThatDefinitelyExists) grayIze.setValue(originalImage, forKey: kCIInputImageKey) blur.setValue(grayIze.outputImage, forKey: kCIInputImageKey) let output = […]

用CIFilter无法从CIImage中提取UIImage

我有这个新的iOS 8 Swift项目,并在其视图控制器之一,我必须设置图像。 但是,在将图像发送到视图之前,我想要使用CIFilter更改图像的对比度: 所以这是我的代码: view = UIImageView(frame:CGRectMake(0, 0, 200, 200)) var lecturePicture = UIImage(named: "placeholder") var beginImage = lecturePicture?.CIImage var controlsFilter = CIFilter(name: "CIColorControls") controlsFilter.setValue(beginImage, forKey: kCIInputImageKey) controlsFilter.setValue(1.5, forKey: "inputContrast") var displayImage = UIImage(CIImage: controlsFilter.outputImage) // breakpoint (view as UIImageView!).image = displayImage 那么,我只是简单地得到一个图像,应用一个转换,然后获得转换后的版本作为UIImage并将其设置回我的视图。 但是我只有一个错误: fatal error: unexpectedly found nil while unwrapping an Optional value […]

将发光效果添加到SKSpriteNode

我在黑暗的屏幕上有一个移动的黑色图像,以便更容易看到我想为图像添加白色的光芒。 这是我的运动图像代码: Ghost = SKSpriteNode(imageNamed: "Ghost1") Ghost.size = CGSize(width: 50, height: 50) Ghost.position = CGPoint(x: self.frame.width / 2 – Ghost.frame.width, y: self.frame.height / 2) Ghost.physicsBody = SKPhysicsBody(circleOfRadius: Ghost.frame.height / 1.4) Ghost.physicsBody?.categoryBitMask = PhysicsCatagory.Ghost Ghost.physicsBody?.collisionBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Wall Ghost.physicsBody?.contactTestBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Wall | PhysicsCatagory.Score Ghost.physicsBody?.affectedByGravity = false Ghost.physicsBody?.isDynamic = true Ghost.zPosition = 2 self.addChild(Ghost) […]