iOS 获取图片某一点的颜色对象UIColor
来源:互联网 发布:淘宝正规刷信誉平台 编辑:程序博客网 时间:2024/06/05 16:22
- (UIColor *)colorAtPixel:(CGPoint)point {
// Cancel if point is outside image coordinates
if (!CGRectContainsPoint(CGRectMake(0.0f, 0.0f, self.size.width, self.size.height), point)) {
return nil;
}
NSInteger pointX = trunc(point.x);
NSInteger pointY = trunc(point.y);
CGImageRef cgImage = self.CGImage;
NSUInteger width = self.size.width;
NSUInteger height = self.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);
// Draw the pixel we are interested in onto the bitmap context
CGContextTranslateCTM(context, -pointX, pointY-(CGFloat)height);
CGContextDrawImage(context, CGRectMake(0.0f, 0.0f, (CGFloat)width, (CGFloat)height), cgImage);
CGContextRelease(context);
// Convert color values [0..255] to floats [0.0..1.0]
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;
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}
UIImage+ColorAtPixel.h #import /* A category on UIImage that enables you to query the color value of arbitrary pixels of the image. */@interface UIImage (ColorAtPixel)- (UIColor *)colorAtPixel:(CGPoint)point;@end#import #import "UIImage+ColorAtPixel.h"@implementation UIImage (ColorAtPixel)- (UIColor *)colorAtPixel:(CGPoint)point { // Cancel if point is outside image coordinates if (!CGRectContainsPoint(CGRectMake(0.0f, 0.0f, self.size.width, self.size.height), point)) { return nil; } NSInteger pointX = trunc(point.x); NSInteger pointY = trunc(point.y); CGImageRef cgImage = self.CGImage; NSUInteger width = self.size.width; NSUInteger height = self.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); // Draw the pixel we are interested in onto the bitmap context CGContextTranslateCTM(context, -pointX, pointY-(CGFloat)height); CGContextDrawImage(context, CGRectMake(0.0f, 0.0f, (CGFloat)width, (CGFloat)height), cgImage); CGContextRelease(context); // Convert color values [0..255] to floats [0.0..1.0] 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; return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];}@end
- iOS 获取图片某一点的颜色对象(UIColor*)。
- iOS 获取图片某一点的颜色对象(UIColor*
- iOS 获取图片某一点的颜色对象UIColor
- cocos2dx获取图片某一点的颜色
- IOS 获取图像指定点的颜色(UIColor)
- iOS获取UIColor对象的RGB值
- iOS 获取UIColor对象的rgb值。
- iOS获取UIColor对象的CMYK值
- iOS颜色摄合器,获取图片某点的颜色值
- 利用windows 系统的画图工具获取图片上某一点的颜色RGB值
- Cocos2d-x中,使用Image类获取图片某一点的颜色
- 获取图片某一点的rgb色值
- iOS 获取UIColor对象的HSB字符串值。
- iOS 获取UIColor对象的lab字符串值。
- 获取当前显示屏幕某一点的颜色
- iOS获取UIColor的ARGB
- iOS 单击图片UIImage提取图片上的颜色UIColor (OC)
- IOS UIColor 自定义颜色
- shell脚本----if判断条件
- [Unity3D插件系列]-A* Pathfinding Project 学习(一)
- 查询锁表与解锁
- 去除字符串末尾指定的字符实例
- java bytes & string conversion
- iOS 获取图片某一点的颜色对象UIColor
- 利用百度地图服务发布自己制作图片的地图
- WebRTC的视频传输的大致流程
- 二叉树的下一结点
- STM32F103RE使用SPI3作为从模式
- 关于Java中的String为什么不可变
- virtualBox安装centos6增强包报错解决及配置共享文件夹
- Linux环境下写一个进度条
- 多任务系统