Tag: cgimageref

使用来自源图像的一些像素数据基于它们的颜色创build新图像

我有原始图像,我可以在这里使用@ patrick-rutkowski回答所有像素。 此外,我有这个答案似乎与像素数据创build图像。 但我不明白如何结合这两个答案。 所以第一个任务是获取像素,第二个是将其添加到另一个CGImage。 例如,如果我想从原始图像中提取所有红色像素,并将这些红色像素添加到另一个图像。 我想这是要走的路。

LeavesCache.m在模拟器上工作,但不在设备上

这是我第一次发表,所以请忍受我。 我一直在网站后search网站,我似乎无法find任何已经解决了这个问题。 如果有人能回答我会很高兴。 LeavesCache.m去年被修改,如果没有错误,以适应ios 7我认为。 代码在下面,但是我收到一个EXC_BAD_ACCESS return pageImage.CGImage 。 我改变它return (__bridge CGImageRef)(pageImage)但现在我的网页出来空白,即使它打印正确的页面索引。 请帮忙! CGImageRef)cachedImageForPageIndex:(NSUInteger)pageIndex { NSNumber *pageIndexNumber = [NSNumber numberWithInt:pageIndex]; UIImage *pageImage; @synchronized (self.pageCache) { pageImage = [self.pageCache objectForKey:pageIndexNumber]; } if (!pageImage) { CGImageRef pageCGImage = CGImageRetain([self imageForPageIndex:pageIndex]); if (pageCGImage) { pageImage = [UIImage imageWithCGImage:pageCGImage]; @synchronized (self.pageCache) { [self.pageCache setObject:pageImage forKey:pageIndexNumber]; } } } //modified […]

我如何操作Xcode中的CGImageRef中的像素值

我有一些 CGImageRef cgImage = "something" 有没有办法来操纵这个CGImage的像素值? 例如,如果这个图像包含0.0001和3000之间的值,因此当我尝试查看或释放图像在NSImageView( 如何使用CGImageRef图像在NSView中显示图像 ) 我得到一个黑色的图像,所有的像素是黑色的,我认为这是与设置像素范围值在不同的颜色映射(我不知道)。 我希望能够操纵或更改像素值,或者只能通过操纵色彩图范围来查看图像。 我已经试过,但显然这是行不通的: CGContextDrawImage(ctx, CGRectMake(0,0, CGBitmapContextGetWidth(ctx),CGBitmapContextGetHeight(ctx)),cgImage); UInt8 *data = CGBitmapContextGetData(ctx); for (**all pixel values and i++ **) { data[i] = **change to another value I want depending on the value in data[i]**; } 谢谢,

为什么AVAssetImageGenerator generateCGImagesAsynchronouslyForTimes崩溃了应用程序

我想使用generateCGImagesAsynchronouslyForTimes从video中提取每秒2帧。 但我的应用程序崩溃。 我正在监视内存使用情况,但不超过14 MB。 这里是代码: – (void) createImagesFromVideoURL:(NSURL *) videoUrl atFPS: (int) reqiuredFPS completionBlock: (void(^) (NSMutableArray *frames, CGSize frameSize)) block { NSMutableArray *requiredFrames = [[NSMutableArray alloc] init]; AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoUrl options:nil]; AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset]; generator.requestedTimeToleranceAfter = kCMTimeZero; generator.requestedTimeToleranceBefore = kCMTimeZero; generator.appliesPreferredTrackTransform = YES; UIImage *sampleGeneratedImage; for (Float64 i = […]

使用ALAsset从GRKPhoto UIImage

我正在使用grabKit ,以允许用户将他们的Instagram,Facebook和本地图片导入到我的应用程序。 问题出在照片是本地的时候。 在这种情况下,我使用一种在用户select照片时起作用的方法。 我发现的标准代码如下: – (void)picker:(GRKPickerViewController *)picker didSelectPhoto:(GRKPhoto *)photo { [popover dismissPopoverAnimated:YES]; GRKImage * originalImage = [photo originalImage]; NSLog(@“所选第一张照片的原始图像的URL是:%@”,originalImage.URL); NSLog(@“这个图像的大小是:%dx%d”,originalImage.width,originalImage.height); //如果url以assets-library开头:// if([[originalImage.URL absoluteString] hasPrefix:@“assets-library://”]){ //实例化一个库 ALAssetsLibrary * library = [[ALAssetsLibrary alloc] init]; //请求URL的“资产”。 资产是Photo应用程序中图像的表示forms。 [library assetForURL:originalImage.URL resultBlock:^(ALAsset *资产){ //在这里,我们有资产,让我们从中检索图像 CGImageRef imgRef = [[asset defaultRepresentation] fullResolutionImage]; //从CGImage开始,我们来构build一个UIImage UIImage * fullResImage = [UIImage imageWithCGImage:imgRef]; NSLog(@“UIImage for […]

CGImageCreatetesting模式不起作用(iOS)

我正在尝试为iOS 5.1设备创buildUIImagetesting模式。 目标UIImageView是320×240的大小,但我正在尝试创build一个160×120 UIImagetesting模式(未来,非testing模式图像将是这个大小)。 我想要盒子的上半部分是蓝色的,下半部分是红色的,但是看起来像是未初始化的内存会损坏图像的底部。 代码如下: int width = 160; int height = 120; unsigned int testData[width * height]; for(int k = 0; k < (width * height) / 2; k++) testData[k] = 0xFF0000FF; // BGRA (Blue) for(int k = (width * height) / 2; k < width * height; k++) testData[k] = 0x0000FFFF; // […]

任何方式来编码PNG比UIImagePNGRepresentation更快?

我正在为CATiledLayer生成一堆瓷砖。 大约需要11秒,在iPhone 4S上生成256个256个细节的120个贴图。 图像本身适合2048 x 2048。 我的瓶颈是UIImagePNGRepresentation 。 生成每个256 x 256图像大约需要0.10-0.15秒。 我已经尝试在不同的背景队列上生成多个贴图,但这只能将其缩减到大约9-10秒。 我也尝试使用这样的代码的ImageIO框架: – (void)writeCGImage:(CGImageRef)image toURL:(NSURL*)url andOptions:(CFDictionaryRef) options { CGImageDestinationRef myImageDest = CGImageDestinationCreateWithURL((__bridge CFURLRef)url, (__bridge CFStringRef)@"public.png", 1, nil); CGImageDestinationAddImage(myImageDest, image, options); CGImageDestinationFinalize(myImageDest); CFRelease(myImageDest); } 虽然这产生较小的PNG文件(胜利!),它需要约13秒,比以前多2秒。 有什么办法来更快地从CGImage编码PNG图像? 也许一个像libjpeg-turbo那样使用NEON ARM扩展(iPhone 3GS +)的库呢? 有没有比PNG更好的格式来节省不占用大量空间的瓷砖? 我已经能够提出的唯一可行的select是将拼贴大小增加到512 x 512.这将编码时间减less了一半。 不知道这将做我的滚动视图。 该应用程序是为iPad 2 +,只支持iOS 6(使用iPhone 4S作为基准)。

如何在iOS中释放CGImageRef

我正在写这个方法来计算图像的平均R,G,B值。 以下方法将UIImage作为input,并返回包含input图像的R,G,B值的数组。 我有一个问题:如何/我在哪里正确地释放CGImageRef? -(NSArray *)getAverageRGBValuesFromImage:(UIImage *)image { CGImageRef rawImageRef = [image CGImage]; //This function returns the raw pixel values const UInt8 *rawPixelData = CFDataGetBytePtr(CGDataProviderCopyData(CGImageGetDataProvider(rawImageRef))); NSUInteger imageHeight = CGImageGetHeight(rawImageRef); NSUInteger imageWidth = CGImageGetWidth(rawImageRef); //Here I sort the R,G,B, values and get the average over the whole image int i = 0; unsigned int red = 0; […]