Tag: 核心图像

iOS:如何高效地模糊图像?

我有一个在内存中存储RGBA格式的图像。 我已经写了一个模糊的例程,适用于小模糊半径,然而像16点这样的大的永远。 有没有一种有效的方式使用CoreImage等模糊图像? 将使用它会导致图像质量的任何损失?

如何将CAShapeLayer坐标转换为CIRectangleFeature以进行手动裁剪

我正在处理手动图像裁剪function。 为了绘制CAShapeLayer,我们使用了四个坐标topLeft,topRight,bottomRight和bottomLeft。 用户可以平移点并select裁剪区域。 我被困在将这些点转换为核心图像坐标,并进一步裁剪与CIPerspectiveTransform。

如何绘制到平面/ ycbcr / 420f / yuv / NV12 /不是rgb的CVPixelBufferRef?

我从包含不是RGBA (线性像素)的CVPixelBufferRef的系统API收到CMSampleBufferRef 。 缓冲区包含平面像素(如420f又名kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange又名yCbCr又称YUV )。 我想修改一些操作这个video数据,然后把它发送到VideoToolkit编码为h264 (绘制一些文本,覆盖一个标志,旋转图像等),但我希望它是有效的即时的。 Buuuut的平面图像数据看起来很肮脏的工作 – 有色度平面和亮度平面,他们是不同的大小和…在这个字节级工作似乎很多工作。 我可能可以使用CGContextRef ,只是在像素上绘制,但从我可以收集它只支持RGBA像素。 任何关于如何尽可能less地复制数据的build议,尽可能less的代码行?

UIImage掩盖与手势

我试图在iOS中实现select性的颜色function。 我个人认为,先用手指画出形状,然后将其转换成蒙版,但同时应该是实时的,它应该在我的手指在灰度图像上移动时工作。 任何人都可以指导我纠正path。 示例应用程序: https : //itunes.apple.com/us/app/color-splash/id304871603?mt = 8 谢谢。

CGImageDestinationFinalize或UIImageJPEGRepresentation – 在IOS 10上保存大文件时发生崩溃

我正在尝试为更大的图像创build切片,而且从IOS 10开始,下面的代码看起来不再起作用,并且与EXC_BAD_ACCESS一起崩溃。 这只发生在IOS 10设备上,IOS 9工作正常。 任何大于〜1300×1300的图像都会发生崩溃。 仪器分析不会产生任何有趣的信息,并指向CGImageDestinationFinalize。 没有记忆秒杀。 我尝试了以下两种方法: UIImage* tempImage = [UIImage imageWithCGImage:tileImage]; NSData* imageData = UIImageJPEGRepresentation(tempImage, 0.8f); // CRASH HERE. 要么 + (BOOL) CGImageWriteToFile: (CGImageRef) image andPath: (NSString *)path { CFURLRef url = (__bridge CFURLRef)[NSURL fileURLWithPath:path]; CGImageDestinationRef destination = CGImageDestinationCreateWithURL(url, kUTTypeJPEG, 1, NULL); if (!destination) { NSLog(@"Failed to create CGImageDestination for %@", path); […]

CIDetector不会释放内存 – swift

在脸部检测完成后,内存不会释放,是否有办法释放它(处理完成后内存保持在300MB)。 autoreleasepool{ manager.requestImageData(for: asset, options: option){ (data, responseString, imageOriet, info) in if (data != nil){ //let faces = (faceDetector?.features(in: CIImage(data: data!)!)) guard let faces = self.faceDetector?.features(in: CIImage(data: data!)!) else { return } completionHandler((faces.count)) }else{ print(info) } } }

在iOS中使用CIEdgeWorkfilter

我正在使用核心图像filter,并试图使CIEdgeWorkfilter。 当应用滤镜时,图像变黑。 我是否正确初始化CIFilter? CIFilter *edgeWork = [CIFilter filterWithName:@"CIEdgeWork" keysAndValues:kCIInputImageKey,filterPreviewImage, @"inputRadius",[NSNumber numberWithFloat:3.0], nil];

MonoTouch中的CoreImage不会从有效资产中返回有效的图像

我正在尝试使用此图像来获取图像。 img = new UIImage(new MonoTouch.CoreImage.CIImage(validAssetObject),1.0f, UIImageOrientation.Up); CIImage是从CIImage调用返回的。 新的UIImage具有CIImage属性= null 。 看起来像UIImage的构造函数不能按预期工作? MonoTouch社区的任何想法?

如何优化这个image processing,用最接近的可用RGBreplace图像上的所有像素?

我试图用最接近的可用RGBreplaceinput图像的所有像素。 我有一个数组包含颜色和input图像。 这里是我的代码,它给我一个预期的输出图像,但它需要很长的时间(约一分钟)来处理一个图像。 任何人都可以帮我改进代码吗? 或者,如果您有任何其他build议,请帮助。 UIGraphicsBeginImageContextWithOptions(CGSizeMake(CGImageGetWidth(sourceImage),CGImageGetHeight(sourceImage)), NO, 0.0f); //Context size I keep as same as original input image size //Otherwise, the output will be only a partial image CGContextRef context; context = UIGraphicsGetCurrentContext(); //This is for flipping up sidedown CGContextTranslateCTM(context, 0, self.imageViewArea.image.size.height); CGContextScaleCTM(context, 1.0, -1.0); // init vars float d = 0; // squared error […]

如何使用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, […]