gpt4 book ai didi

ios - 快速像素采样

转载 作者:行者123 更新时间:2023-11-29 03:38:49 25 4
gpt4 key购买 nike

我需要尽快从图像中获取 RBG 数据。我目前这样做:

CGRect rect = CGRectMake(roundf(xCoord * self.scale), roundf(yCoord * self.scale), 1, 1);
CGImageRef cropped = CGImageCreateWithImageInRect(self.CGImage, rect);

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

unsigned char rawData[UIIMAGE_BYTES_PER_PIXEL];
NSUInteger bytesPerRow = UIIMAGE_BYTES_PER_PIXEL;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(rawData, 1, 1,
bitsPerComponent, bytesPerRow, colorSpace,
kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);

CGColorSpaceRelease(colorSpace);
CGContextDrawImage(context, CGRectMake(0, 0, 1, 1), cropped);

CGImageRelease(cropped);
CGContextRelease(context);

CGFloat red = rawData[0] / 255.0;
CGFloat green = rawData[1] / 255.0;
CGFloat blue = rawData[2] / 255.0;
CGFloat alpha = rawData[3] / 255.0;

return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];

但是速度太慢了。

有没有人有使用 Open GL 纹理来执行此操作的代码片段?我查看了 GPUImage 项目,试图找到一个起点,但仅仅为了这一件事就必须学习有关 OpenGL 的所有知识,这让人难以承受。

最佳答案

正如 Justin 指出的,最好的方法是一次性获取所有像素数据,然后访问它。像我一样一次获取一个像素的数据非常非常慢。

关于ios - 快速像素采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18763632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com