首页
学习
活动
专区
圈层
工具
发布

如何从 UIImageView 指定的坐标点取色?

开发中有时候会遇到这样的需求,要给用户一个取色板,让用户从中自由地选取颜色,用来改变主题或者控制灯具的颜色等。这时候我们就需要获取一个视图的指定坐标的颜色值。...= self.CGImage; NSUInteger width = CGImageGetWidth(cgImage); NSUInteger height = CGImageGetHeight...point completion:^(UIColor *color){ // 在这里直接用color }]; 因为取色板一般是圆形的,如果坐标点超出了圆形但依然在imageView的frame内,可能会返回一些用户不期望的结果...如果不用block方式,那么即使超出了圆形范围,也一定会返回对应的rgba值,会造成不想要的后果。 block的回调机制巧妙地解决了这个问题。...、point UIColor *color = [imageView ax_getColorWithPoint:point]; // 获得UIColor对象 由声明可以看出来,返回的值是一个可空类型,因此这跟第一种方法一样是不安全的

99230
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    老司机出品———疯狂造轮子之滑动验证码

    * scale, rect.size.height * scale); CGImageRef newImageRef = CGImageCreateWithImageInRect(self.CGImage...在这个分类里面老司机封装了很多UIImage常用的方法,如下: ///高性能按图片名称检索本地图片 +(UIImage *)dw_ImageNamed:(NSString *)name; ///高性能返回无延迟立即解压的图片实例...-(UIColor *)dw_ColorAtPoint:(CGPoint)point; ///按给定颜色生层图片 +(UIImage *)dw_ImageWithColor:(UIColor *)color...self.configurating) { return; } _configurating = NO; self.layer.contents = (id)self.bgImage.CGImage...最初的时候其实我就是想实现后面那个步进Slider,最初的想法继承UISlider去重写,奈何转了一大圈,各种私有属性用一遍也无法完美的完成我的需求。

    1.3K41

    iOS-Core系列框架介绍(一)

    CoreGraphics import CoreGraphics.CGBase // 常用对象 import CoreGraphics.CGFunction import CoreGraphics.CGImage...// 图片 import CoreGraphics.CGColor // 颜色 import CoreGraphics.CGLayer // 图层 import CoreGraphics.CGFont...// 字体 import CoreGraphics.CGPath // 路径 import CoreGraphics.CGError // CGPoint、CGSize、CGRect以及相关几何运算函数的定义...CoreGraphics.CGPDFStream import CoreGraphics.CGPDFString CoreGraphics,也称为Quartz2D,基于Darwin,它是一个2D绘图引擎,主要处理路径的绘制、抗锯齿、渐变、图像、颜色...、PDF文档等 定义了CGPath、CGImage等常用的对象 定义了CGPoint、CGSize、CGRect等常用的数据结构并提供了相关的几何运算函数, 定义了CGLayer并提供了渐变和变换矩阵的接口

    1.2K30

    iOS动画-CALayer基础知识

    下面是一些UIView没有暴露出来的CALayer的功能: 设置阴影、圆角、带颜色边框 3D变换 非矩形范围 透明遮罩 多级非线性动画 二、CALyer寄宿图与contents属性 CALayer具有和...CALayer的contents属性虽被定义为id,但是真正可以被赋值的类型是CGImageRef,指向的是一个CGImage结构的指针。...在Mac OS系统上,contents属性对于CGIamge和NSImage类型的值都起作用;而对于iOS平台,虽然UIImage的CGImage属性也返回一个CGImageRef,但如果将这个值直接赋值给...) 允许在图层边框里显示寄宿图的一个子域 contentCenter (CGRect) 定义一个固定的边框和一个在图层上可拉伸的区域 三、UIView方法绘制自定义寄宿图 给contents赋值CGImage...drawRect:(CGRect)rect{ //获取画布 CGContextRef context = UIGraphicsGetCurrentContext(); //画笔颜色

    2.4K50

    iOS开发CoreGraphics核心图形框架之七——图像处理

    在Web开发中,为了减少请求次数,常常会将许多小图片合成一张大图片返回给前端,同时还会给前端返回一个json文件,文件中存放着每个独立小图的坐标位置,前端在使用时进行截取即可,这种图片常常被称作雪碧图。...膜层可以简单的理解为将一个图层追加到原图层上,但需要注意,图层中颜色为纯黑的部分,会按照原图绘制,纯白的部分会被完全遮挡,这中间的颜色会以特定的算法进行alpha值的更改。...除了使用图片膜层来对原图像数据进行裁剪处理外,还可以通过颜色数据定义膜层来进行裁剪。这个方法就能加强大了,其可以将图像中某个范围的颜色所对应的所有区域裁剪出来。...,例如RGB色彩空间对应这个数组需要有6个元素{min1,max1,min2,max2,min3,max3}。...之后会对图像数据中的每一个像素点进行遍历,假如此像素点的颜色值为{c1,c2,c3}。

    1.9K10

    iOS 页面渲染 - UIView & CALayer

    open func hitTest(_ p: CGPoint) -> CALayer? open func convert(_ p: CGPoint, from l: CALayer?)..., 这些 model 数据都是在开发中可以设置的, 我们任何对于 view/layer 的修改都能反应在 model tree 中; presentation tree:这是一个中间层,我们 APP 无法主动操作...delegate 可以通过返回以下三者之一来进行响应: 它可以返回一个动作对象,这种情况下 layer 将使用这个动作。 它可以返回一个 nil,这样 layer 就会到其他地方继续寻找。...但是在实践中,如果 content 的值不是 CGImage ,得到的图层将是空白的。 既然如此,为什么要将 contents 的属性类型定义为 id 而非 CGImage。...这是因为在 Mac OS 系统中,该属性对 CGImage 和 NSImage 类型的值都起作用,而在 iOS 系统中,该属性只对 CGImage 起作用。

    2.6K20

    iOS——隐形水印的实现和『颜色加深』算法

    具体处理方式是 在原图上图层添加全黑图层 全黑图层选择『颜色加深』 到此为止,我对 PS 的算法产生了好奇,混色模式是常用工具,但是以前没有注意过公式。...查看每个通道中的颜色信息,并通过增加二者之间的对比度使基色变暗以反映出混合色。与白色混合后不产生变化。...最后我试出来一个接近的方案是: 结果色 = 基色 —(基色反相×混合色反相)/ 混合色 如混色层为黑色,则认为 RGB 为 (255, 255, 255),即非常深的灰色 这个公式可以基本实现 PS 中的颜色加深效果...addWatermark:(UIImage *)image text:(NSString *)text textPoint:(CGPoint...inputPixels; //转换图片为CGImageRef,获取参数:长宽高,每个像素的字节数(4),每个R的比特数 CGImageRef inputCGImage = [image CGImage

    2.1K71
    领券