oc 提取图片中的颜色
2017-04-13 17:42
162 查看
一、下载地址
下载:https://github.com/puyangdev/PYColorPicker二、 效果
三、关键代码
//获取图片某一点的颜色 - (UIColor *)colorAtPixel:(CGPoint)point { if (!CGRectContainsPoint(CGRectMake(0.0f, 0.0f, self.image.size.width, self.image.size.height), point)) { return nil; } NSInteger pointX = trunc(point.x); NSInteger pointY = trunc(point.y); CGImageRef cgImage = self.image.CGImage; NSUInteger width = self.image.size.width; NSUInteger height = self.image.size.height; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); int bytesPerPixel = 4; int bytesPerRow = bytesPerPixel * 1; NSUInteger bitsPerComponent = 8; unsigned char pixelData[4] = { 0, 0, 0, 0 }; CGContextRef context = CGBitmapContextCreate(pixelData, 1, 1, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); CGColorSpaceRelease(colorSpace); CGContextSetBlendMode(context, kCGBlendModeCopy); CGContextTranslateCTM(context, -pointX, pointY-(CGFloat)height); CGContextDrawImage(context, CGRectMake(0.0f, 0.0f, (CGFloat)width, (CGFloat)height), cgImage); CGContextRelease(context); CGFloat red = (CGFloat)pixelData[0] / 255.0f; CGFloat green = (CGFloat)pixelData[1] / 255.0f; CGFloat blue = (CGFloat)pixelData[2] / 255.0f; CGFloat alpha = (CGFloat)pixelData[3] / 255.0f; NSLog(@"%f %f %f %f",(CGFloat)pixelData[0],(CGFloat)pixelData[1],(CGFloat)pixelData[2],(CGFloat)pixelData[3]); return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; }
相关文章推荐
- iOS 单击图片UIImage提取图片上的颜色UIColor (OC)
- OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- 使用Palette来对图片进行颜色提取
- php 提取图片主要颜色
- MATLAB-图片特定颜色区域提取(矩阵)
- 用Python提取图片主要颜色
- 提取bmp图片的颜色信息,可直接framebuffer显示(c版本与python版本)
- 使用Palette类提取图片的颜色信息
- ios--OpenCV--提取图片(或者视频)的R,G,B颜色分量
- [Material Design]使用Palette类提取图片的颜色信息
- Gradify - 提取图片颜色,创建响应式的 CSS渐变
- 使用Palette提取图片的颜色信息
- OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- OpenCV提取一张图片(或者视频)的R,G,B颜色分量
- OpenCV提取显示一张图片的R,G,B颜色分量
- 数据颜色图片提取
- OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- 如何提取图片的所有像素的颜色RGBa值?
- 用Palette提取图片颜色