iOS 获取图片某一点的颜色对象(UIColor*)。
来源:互联网 发布:sql 学生 课程 成绩 编辑:程序博客网 时间:2024/06/05 19:49
- (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 [UIColorcolorWithRed:red green:greenblue:blue alpha:alpha];
}
UIImage+ColorAtPixel.h #import <UIKit/UIKit.h>/* 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 <CoreGraphics/CoreGraphics.h>#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
- IOS 获取图像指定点的颜色(UIColor)
- cocos2dx获取图片某一点的颜色
- 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)
- 深入理解Javascript闭包概念
- cocos2dx 3.0学习笔记(一):Win32下-cocos2dx-3.0环境配置和创建项目
- android中ListView详解
- 朗朗上口的两幅对联
- PC上传脚本不成功的一种解决方法
- iOS 获取图片某一点的颜色对象(UIColor*)。
- HDU 4578 线段树区间更新(确定区间操作的优先级)
- iconv 文件编码转换
- Android微信开放平台SDK, demo调试
- 定点与浮点运算 DSP 的比较
- 北京君正集成电路的Newton平台--穿戴式
- H补题
- UIWebView使用
- wampserver下配置虚拟主机实现多站点支持[修改]