Tag: ciimage

如何使用kciFormatRGBAh获得与Core Image iOS的一半浮动?

我正在尝试获取浮点CIImage的每像素RGBA值。 我期望以下工作,使用CIContext和渲染作为kCIFormatRGBAh ,但输出是全零。 否则,我的下一步将从半浮动转换为完整。 我究竟做错了什么? 我也在Objective-C中试过,并得到相同的结果。 let image = UIImage(named: "test")! let sourceImage = CIImage(CGImage: image.CGImage) let context = CIContext(options: [kCIContextWorkingColorSpace: NSNull()]) let colorSpace = CGColorSpaceCreateDeviceRGB() let bounds = sourceImage.extent() let bytesPerPixel: UInt = 8 let format = kCIFormatRGBAh let rowBytes = Int(bytesPerPixel * UInt(bounds.size.width)) let totalBytes = UInt(rowBytes * Int(bounds.size.height)) var bitmap = calloc(totalBytes, […]

SceneKit,SCNMaterial的翻转方向

对于SceneKit来说非常新颖,所以在这里寻找帮助: 我有一个SCNSphere与它的中心相机 我创build一个SCNMaterial,doubleSided,并将其分配给球体 由于相机在中心,图像看起来垂直翻转,当文本里面的东西完全混乱了。 所以我怎样才能翻转材料,或图像(虽然以后它会从video帧),任何其他build议是值得欢迎的。 这个解决scheme,顺便说一句,我失败了,normalImage作为一种材料应用(但图像翻转时,从球内看),但分配flippedImage结果没有任何材料(白色屏幕) let normalImage = UIImage(named: "text2.png") let ciimage = CIImage(CGImage: normalImage!.CGImage!) let flippeCIImage = ciimage.imageByApplyingTransform(CGAffineTransformMakeScale(-1, 1)) let flippedImage = UIImage(CIImage: flippeCIImage, scale: 1.0, orientation: .Left) sceneMaterial.diffuse.contents = flippedImage sceneMaterial.specular.contents = UIColor.whiteColor() sceneMaterial.doubleSided = true sceneMaterial.shininess = 0.5

当向UIImage应用filter时,结果是颠倒的

这真让我烦恼。 当我将UIImage转换为CIImage时,应用一个滤镜,然后将图像倒转(对于横向)或逆时针旋转90度(对于纵向)。 var image:UIImage? var index:Int? @IBOutlet weak var photo: UIImageView! @IBAction func editImage(sender: UIBarButtonItem) { println("editImage") let beginImage = CIImage(image: self.image) let filter = CIFilter(name: "CISepiaTone") filter.setValue(beginImage, forKey: kCIInputImageKey) filter.setValue(0.8, forKey: kCIInputIntensityKey) let newImage = UIImage(CIImage: filter.outputImage) self.photo.image = newImage }

如何从CIAreaHistogram中提取主色?

我正在寻找分析iOS上的UIImage(最像素的颜色)最主要的颜色,我偶然发现了核心图像的基于filter的API,特别是CIAreaHistogram。 似乎这个filter可能会帮助我,但我正在努力了解API。 首先它说filter的输出是一个一维图像,它是您的input框的长度和一个像素的高度。 我如何读取这些数据? 我基本上想要找出频率最高的颜色值,所以我期望数据包含每种颜色的某种频率计数,我不清楚这个一维图像是如何表示的,因为它不是真的解释我在这个一维图像内可以预期的数据。 如果它真的是一个直方图,为什么它不会返回一个像字典一样的数据结构 其次,在API中要求多个分档? 这个input应该是什么? 如果我想要一个精确的分析,inputbin参数是我的图像的色彩空间? 什么使仓值更小,我会想象它通过欧几里德距离近似的颜色接近最近的bin。 如果情况是这样,那么不会产生精确的直方图结果,为什么有人想要这样做? 从API的angular度对上述两个问题的任何意见都会对我有很大的帮助

将元数据应用于图像导致performChanges请求失败

我正在使用PhotoKit编辑照片,我需要保留原始照片的元数据。 为此,我保存元数据,然后将其提供给CGImageDestinationAddImage的options参数。 我能够最终确定并成功将其写入磁盘,但是当我调用performChanges来提交资源编辑时,它会失败。 如果我提供nil options ,它将成功。 这里怎么了? asset.requestContentEditingInputWithOptions(options) { (input: PHContentEditingInput!, _) -> Void in //get full image let url = input.fullSizeImageURL let inputImage = CIImage(contentsOfURL: url) //get orginal photo's metadata let originalImageData = NSData(contentsOfURL: url)! let imageSource = CGImageSourceCreateWithData(originalImageData, nil) let metadata: CFDictionaryRef = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil) println(metadata) //prints all the metadata, yay! //do […]

如何输出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. } […]

裁剪CIImage

我有一个类需要一个UIImage ,像这样初始化一个CIImage : workingImage = CIImage.init(image: baseImage!) 然后,图像被用来从中切出9个相邻的正方形,在一个循环中: for x in 0..<3 { for y in 0..<3 { croppingRect = CGRect(x: CGFloat(Double(x) * sideLength + startPointX), y: CGFloat(Double(y) * sideLength + startPointY), width: CGFloat(sideLength), height: CGFloat(sideLength)) let tmpImg = (workingImage?.cropping(to: croppingRect))! } } 这些tmpImgs被插入到一个表中,以后使用,但除此之外, 此代码适用于IOS 9和IOS 10模拟器,但不适用于实际的IOS 10设备 。 生成的图像要么全是空的,要么其中一个就像它应该是的一半,剩下的就是空的。 这不是它应该如何在IOS 10完成吗?

无法将CIImage转换为Swift 3.0中的UIImage

我正在使用以下代码来制作图像格式的QR Code码: func createQRFromString(str: String) -> CIImage? { let stringData = str.dataUsingEncoding(NSUTF8StringEncoding) let filter = CIFilter(name: "CIQRCodeGenerator") filter?.setValue(stringData, forKey: "inputMessage") filter?.setValue("H", forKey: "inputCorrectionLevel") return filter?.outputImage } 然后我添加到UIImageView像这样: if let img = createQRFromString(strQRData) { let somImage = UIImage(CIImage: img, scale: 1.0, orientation: UIImageOrientation.Down) imgviewQRcode.image = somImage } 现在我需要将其保存为JPEG或PNG文件。 但是当我这样做时,我的应用程序崩溃: @IBAction func btnSave(sender: AnyObject) { // // […]

从CIImage获取CGImage

我有一个UIImage从CIImage加载: tempImage = [UIImage imageWithCIImage:ciImage]; 问题是我需要裁剪tempImage到一个特定的CGRect和我知道如何做到这一点的唯一方法是通过使用CGImage 。 问题是,在iOS 6.0文档中,我发现这个: CGImage If the UIImage object was initialized using a CIImage object, the value of the property is NULL. A.如何将CIImage转换为CGImage? 我正在使用这个代码,但我有一个内存泄漏(并不明白在哪里): +(UIImage*)UIImageFromCIImage:(CIImage*)ciImage { CGSize size = ciImage.extent.size; UIGraphicsBeginImageContext(size); CGRect rect; rect.origin = CGPointZero; rect.size = size; UIImage *remImage = [UIImage imageWithCIImage:ciImage]; [remImage drawInRect:rect]; UIImage *result = UIGraphicsGetImageFromCurrentImageContext(); […]

如何使用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时,屏幕变成白色。 无法弄清楚我做错了什么。 任何人都知道我在做什么错了?