iPhone : How to get colour of each pixel of an image?

标签 iphone ios core-graphics

我想获取图像所有单个像素的颜色。 详细说明 假设我有一张名为“SampleImage”的图像,像素为 400 x 400 基本上,我想从“SampleImage”创建一个网格,其中包含 400 x 400 个正方形,每个正方形都填充了与“SampleImage”中的特定像素相对应的颜色。

我知道这有点抽象,但我是 iOS 的新手,不知道从哪里开始。 提前致谢!

最佳答案

使用这个: 这是更有效的解决方案:

// UIView+ColorOfPoint.h
@interface UIView (ColorOfPoint)
- (UIColor *) colorOfPoint:(CGPoint)point;
@end

// UIView+ColorOfPoint.m
#import "UIView+ColorOfPoint.h"
#import <QuartzCore/QuartzCore.h>

@implementation UIView (ColorOfPoint)

- (UIColor *) colorOfPoint:(CGPoint)point
{
    unsigned char pixel[4] = {0};
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGContextRef context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, kCGImageAlphaPremultipliedLast);

    CGContextTranslateCTM(context, -point.x, -point.y);

    [self.layer renderInContext:context];

    CGContextRelease(context);
    CGColorSpaceRelease(colorSpace);

    //NSLog(@"pixel: %d %d %d %d", pixel[0], pixel[1], pixel[2], pixel[3]);

    UIColor *color = [UIColor colorWithRed:pixel[0]/255.0 green:pixel[1]/255.0 blue:pixel[2]/255.0 alpha:pixel[3]/255.0];

    return color;
}

@end

希望对你有帮助。

关于iPhone : How to get colour of each pixel of an image?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16416380/

相关文章:

cocoa-touch - 为 UITableView 创建阴影

ios - GoogleMaps 不是 dylib : Error at compile time with pod file

iphone - 文本转语音不起作用

iphone - iOS 瓶颈 : Global variable vs. 核心数据或属性列表

ios - 在数组的不同部分多次调用相同的方法

ios - 在 iOS 设备上以编程方式限制 HLS 流的比特率

ios - 如何在 TableViewCell 中获取更改后的值

objective-c - 边框模糊的 UIView

javascript - 如何使用 Objective C 或 javascript 在 cydget 中运行系统命令?

iphone - 执行转换后 "invalid frame"到底意味着什么?