Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 用核心图形绘制彩色地图_Iphone_Objective C_Cocoa Touch_Core Graphics_Cgcontext - Fatal编程技术网

Iphone 用核心图形绘制彩色地图

Iphone 用核心图形绘制彩色地图,iphone,objective-c,cocoa-touch,core-graphics,cgcontext,Iphone,Objective C,Cocoa Touch,Core Graphics,Cgcontext,我想知道如何绘制这样的彩色地图: 我知道Core Graphics有两个处理渐变的函数:CGContextDrawLinearGradient和CGContextDrawRadialGradient。径向梯度不是我想要的,所以我想我不得不使用另一个。但我不能只用线性渐变来完成示例图像 颜色贴图基本上是一个渐变,其中色调水平变化,饱和度垂直变化。如何实现这一点?顾名思义,线性渐变只在一个轴上运行。理论上,你可以将多个渐变叠加在一个渐变上,以产生与该图像相似的效果,但我怀疑这是否是一个非常有效的解决

我想知道如何绘制这样的彩色地图:

我知道Core Graphics有两个处理渐变的函数:
CGContextDrawLinearGradient
CGContextDrawRadialGradient
。径向梯度不是我想要的,所以我想我不得不使用另一个。但我不能只用线性渐变来完成示例图像


颜色贴图基本上是一个渐变,其中色调水平变化,饱和度垂直变化。如何实现这一点?

顾名思义,线性渐变只在一个轴上运行。理论上,你可以将多个渐变叠加在一个渐变上,以产生与该图像相似的效果,但我怀疑这是否是一个非常有效的解决方案。我需要在我的一个iOS应用程序中使用一个类似的颜色贴图,我最终使用了该图像,因为它比尝试重新创建它要高效得多。

应该可以使用核心图形绘制一次渐变,然后将其保存为.png,我可以在我的应用程序中使用,这样它仍然高效。我只需要一种方法来绘制它使用CG,所以我可以稍微修改它,以我自己的愿望。你可以绘制到位图上下文,然后保存为PNG文件。是的,我已经知道如何绘制到位图上下文,并保存为文件,但我不知道如何实际绘制颜色贴图。“将多个渐变叠加在另一个渐变之上”的想法对我来说很有意义,但我真的不知道如何实现这一点。。(使用色调、饱和度等绘制)您需要以rgb绘制所有图形,因此必须对每个HSV值进行转换。您将使用CGGradientCreateWithColorComponents为x轴上的所有颜色设置线性渐变,然后使用CGContextDrawLinearGradient绘制该渐变,然后沿y轴向下移动,并为图像中的第二行创建下一个渐变。这将是一个棘手的过程,但希望这能给你足够的时间来弄清楚如何开始。