一种颜色获取方法及装置
技术领域
本发明涉及颜色处理技术领域,特别涉及一种颜色获取方法及装置。
背景技术
目前,在WPF(Windows Presentation Foundation,是微软推出的基于WindowsVista的用户界面框架,属于.NET Framework 3.0的一部分)中使用调色板时,是通过调用Winform(WinForm是·Net开发平台中对Windows Form的一种称谓)中ColorDialog控件(ColorDialog控件是.net预设的有模式对话框,其功能是弹出系统自带的调色板,让用户选择颜色或者自定义颜色)来选取颜色,但这种方案在WPF的开发中会存在诸多弊端,如层显示问题、灵活性问题等。
发明内容
本发明提供一种颜色获取方法及装置,用以在使用WPF中的目标显示控件显示目标颜色背景图像时,可以自动当前移动点在目标颜色背景图像中的第一当前坐标,进而将该第一当前坐标处的颜色进行保存,并作为该当前移动点的选中颜色,可以实现将该当前移动点移动位置之处的颜色自动作为用户选中的颜色,从而在WPF中方便地实现调色板颜色的选取功能。
本发明提供一种颜色获取方法,包括:
在使用WPF中的目标显示控件显示目标颜色背景图像时,获取当前移动点在所述目标颜色背景图像中的第一当前坐标;
获取使用所述目标显示控件显示所述目标颜色背景图像时,所述第一当前坐标处的颜色;
将所述颜色进行保存,确定所述颜色为所述当前移动点的选中颜色。
在一个实施例中,在使用WPF中的目标显示控件显示颜色背景图像时,获取当前移动点在所述颜色背景图像中的第一当前坐标之前,所述方法还包括:
获取包含多种颜色的预设颜色背景图像;
为所述目标显示控件设置目标显示属性,以对所述预设颜色背景图像的显示属性进行调整,得到所述目标颜色背景图像,其中,所述显示属性包括:所述预设颜色背景图像的尺寸大小、形状中的一项或多项。
在一个实施例中,所述获取使用所述目标显示控件显示所述目标颜色背景图像时,所述第一当前坐标处的颜色,包括:
调用Winform;
在所述Winform中创建目标显示对象,根据所述目标显示对象的尺寸、所述目标显示控件的尺寸和所述第一当前坐标,确定使用所述目标显示对象显示所述目标颜色背景图像时,所述当前移动点在所述目标颜色背景图像中的第二当前坐标;
获取使用所述目标显示对象显示所述目标颜色背景图像时,所述第二当前坐标处的颜色;
确定所述第二当前坐标处的颜色为所述第一当前坐标的颜色。
在一个实施例中,所述获取使用所述目标显示对象显示所述目标颜色背景图像时,所述第二当前坐标处的颜色,包括:
通过所述目标显示对象,获取所述Winform的第一颜色对象获取到的所述第二当前坐标处的颜色;
所述确定所述第二当前坐标处的颜色为所述第一当前坐标处的颜色,包括:
调用WPF中的第二颜色对象获取所述第一颜色对象获取的所述第二当前坐标处的颜色;
确定所述第二当前坐标的颜色为所述第一当前坐标处的颜色。
在一个实施例中,所述方法还包括:
当所述当前移动点离开所述目标颜色背景图像时,确定当前移动点离开所述目标颜色背景图像时的目标坐标处的颜色为所述选中颜色。
本发明还提供一种颜色获取装置,包括:
第一获取模块,用于在使用WPF中的目标显示控件显示目标颜色背景图像时,获取当前移动点在所述目标颜色背景图像中的第一当前坐标;
第二获取模块,用于获取使用所述目标显示控件显示所述目标颜色背景图像时,所述第一当前坐标处的颜色;
第一确定模块,用于将所述颜色进行保存,确定所述颜色为所述当前移动点的选中颜色。
在一个实施例中,所述装置还包括:
第三获取模块,用于在使用WPF中的目标显示控件显示颜色背景图像时,获取当前移动点在所述颜色背景图像中的第一当前坐标之前,获取包含多种颜色的预设颜色背景图像;
处理模块,用于为所述目标显示控件设置目标显示属性,以对所述预设颜色背景图像的显示属性进行调整,得到所述目标颜色背景图像,其中,所述显示属性包括:所述预设颜色背景图像的尺寸大小、形状中的一项或多项。
在一个实施例中,所述第二获取模块包括:
调用子模块,用于调用Winform;
第一确定子模块,用于在所述Winform中创建目标显示对象,根据所述目标显示对象的尺寸、所述目标显示控件的尺寸和所述第一当前坐标,确定使用所述目标显示对象显示所述目标颜色背景图像时,所述当前移动点在所述目标颜色背景图像中的第二当前坐标;
获取子模块,用于获取使用所述目标显示对象显示所述目标颜色背景图像时,所述第二当前坐标处的颜色;
第二确定子模块,用于确定所述第二当前坐标处的颜色为所述第一当前坐标的颜色。
在一个实施例中,所述获取子模块具体用于:
通过所述目标显示对象,获取所述Winform的第一颜色对象获取到的所述第二当前坐标处的颜色;
所述第二确定子模块具体用于:
调用WPF中的第二颜色对象获取所述第一颜色对象获取的所述第二当前坐标处的颜色;
确定所述第二当前坐标的颜色为所述第一当前坐标处的颜色。
在一个实施例中,所述装置还包括:
第二确定模块,用于当所述当前移动点离开所述目标颜色背景图像时,确定当前移动点离开所述目标颜色背景图像时的目标坐标处的颜色为所述选中颜色。
本公开的实施例提供的技术方案可以包括以下有益效果:
在使用WPF中的目标显示控件显示目标颜色背景图像时,可以自动当前移动点在目标颜色背景图像中的第一当前坐标,进而将该第一当前坐标处的颜色进行保存,并作为该当前移动点的选中颜色,可以实现将该当前移动点移动位置之处的颜色自动作为用户选中的颜色,从而在WPF中方便地实现调色板颜色的选取功能。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据一示例性实施例示出的一种颜色获取方法的流程图。
图2是根据一示例性实施例示出的另一种颜色获取方法的流程图。
图3是根据一示例性实施例示出的又一种颜色获取方法的流程图。
图4是根据一示例性实施例示出的一种颜色获取装置的框图。
图5是根据一示例性实施例示出的另一种颜色获取装置的框图。
图6是根据一示例性实施例示出的又一种颜色获取装置的框图。
图7是根据一示例性实施例示出的再一种颜色获取装置的框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
相关技术中,在WPF(Windows Presentation Foundation,是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分)中使用调色板时,是通过调用Winform(WinForm是·Net开发平台中对Windows Form的一种称谓)中ColorDialog控件(ColorDialog控件是.net预设的有模式对话框,其功能是弹出系统自带的调色板,让用户选择颜色或者自定义颜色)来选取颜色,但这种方案在WPF的开发中会存在诸多弊端,如层显示问题、灵活性问题等。
为了解决上述技术问题,本公开实施例提供了一种颜色获取方法,该方法适用于颜色获取程序、系统或装置中,其执行主体可以是安装有WPF的Windows设备,如图1所示,
步骤S101,在使用WPF中的目标显示控件显示目标颜色背景图像时,获取当前移动点在目标颜色背景图像中的第一当前坐标;
目标显示控件可以是Image控件,目标颜色背景图像包含了各种可供选择的颜色,图像中不同区域的颜色会有所不同,且当前移动点可以是鼠标、触摸笔、画笔等设备与该目标颜色背景图像相接触的点,也可以是用户指尖与该目标颜色背景图像的接触点。
步骤S102,获取使用目标显示控件显示目标颜色背景图像时,第一当前坐标处的颜色;
由于目标颜色背景图像中不同位置对应的颜色可能有所不同,因而,在获取到使用该目标显示控件显示该目标颜色背景图像时,当前移动点在该目标颜色背景图像的第一当前坐标之后,可以对该第一当前坐标处的图像进行识别,以自动识别出该第一当前坐标处的颜色。
步骤S103,将颜色进行保存,确定颜色为当前移动点的选中颜色。
通过将该第一当前坐标处的颜色进行保存,并作为该当前移动点的选中颜色,可以实现将该当前移动点移动位置之处的颜色(即该当前移动点的选中颜色)自动作为用户选中的颜色,从而在WPF中方便地实现调色板颜色的选取功能。
如图2所示,在一个实施例中,在步骤S101之前,方法还包括:
步骤S201,获取包含多种颜色的预设颜色背景图像;
步骤S202,为目标显示控件设置目标显示属性,以对预设颜色背景图像的显示属性进行调整,得到目标颜色背景图像,其中,显示属性包括:预设颜色背景图像的尺寸大小、形状中的一项或多项。
在获取该第一当前坐标之前,目标显示控件中最初显示的图像通常不是目标颜色背景图像,而是包含多种颜色的一张正方形或长方形的预设颜色背景图像,而为了使目标显示控件显示出的图像即该目标颜色背景图像更加美观,可以为该目标显示控件设置目标显示属性,具体过程如下:
当该目标显示控件为Image控件时,可以将Image控件中的目标显示属性即Clip属性(其中,Clip属性允许规定元素的可见尺寸,以及元素被裁剪和显示的形状)设置为EllipseGeometry对象,其中,EllipseGeometry对象是用来绘制一个椭圆或者圆形的图形的类,表示圆或椭圆的几何图形,因而,通过将目标显示属性Clip属性的目标显示属性Clip属性设置为EllipseGeometry对象,可以对该预设颜色背景图像的尺寸大小、形状等进行调整,使得目标颜色背景图像的中心点为Image控件的中心点,半径属性RadiusX和RadiusY均为Image控件宽度的1/2,即通过将Clip属性设置为EllipseGeometry对象,使得该目标颜色背景图像是以Image控件的中心点为中心、以Image控件宽度的1/2为半径的圆形颜色背景图像,进而使得使用该目标显示控件显示出的图像更加美观。
另外,显示第一坐标处的颜色时,可以通过Image控件中的EllipseGeometry对象显示的。
如图3所示,在一个实施例中,上述步骤S102可被执行为:
步骤A1,调用Winform;
步骤A2,在Winform中创建目标显示对象,根据目标显示对象的尺寸、目标显示控件的尺寸和第一当前坐标,确定使用目标显示对象显示目标颜色背景图像时,当前移动点在目标颜色背景图像中的第二当前坐标;
由于目标显示控件Image控件并不能直接获取目标颜色背景图像中的颜色,因而,需要调用Winform,并创建目标显示对象即Bitmap对象(Bitmap为位图文件,扩展名可以是.bmp或者.dib),进而使用该Bitmap对象获取第一坐标处的颜色,另外,由于目标显示对象的尺寸和目标显示控件的尺寸是不同的,因而,目标颜色背景图像中同一位置在目标显示控件中的第一当前坐标和在目标显示对象中的坐标即下文的该第二当前坐标可能是不同的,因而,为了准确地获取当前移动点所在处的第一当前坐标处的颜色,需要根据目标显示对象的尺寸和目标显示控件的尺寸,将该第一当前坐标转换为使用目标显示对象显示该目标颜色背景图像时,该当前移动点在该目标颜色背景图像中的第二当前坐标,具体地,
第二当前坐标中的X坐标等于第一当前坐标中的X坐标*Bitmap对象宽度/Image控件的显示宽度,同样地,第二当前坐标中的Y坐标等于第一当前坐标中的Y坐标*Bitmap对象宽度/Image控件的显示宽度。
步骤A3,获取使用目标显示对象显示目标颜色背景图像时,第二当前坐标处的颜色;
在自动确定出该第二当前坐标之后,可以在使用Bitmap对象显示该目标颜色背景图像时,使用Bitmap对象中的GetPixel获取第二当前坐标处的RGB颜色值,以得到该第二当前坐标处的颜色。
步骤A4,确定第二当前坐标处的颜色为第一当前坐标的颜色。
第一当前坐标和第二当前坐标可能是不同的,但第二当前坐标处的颜色却是用户期望选取的第一当前坐标的颜色,因而通过自动确定第二当前坐标处的颜色为第一当前坐标的颜色,可以自动选取用户选择的颜色,避免使用ColorDialog控件来选取颜色,而带来的层显示、灵活性等问题。
在一个实施例中,上述步骤A3可被执行为:
通过目标显示对象,获取Winform的第一颜色对象获取到的第二当前坐标处的颜色;
上述步骤A4可被执行为:
调用WPF中的第二颜色对象获取第一颜色对象获取的第二当前坐标处的颜色;
确定第二当前坐标的颜色为第一当前坐标处的颜色。
由于Winform中颜色值的直接保存对象与WPF中颜色值的直接保存对象不同,即Winform中颜色值的直接保存对象为System.Drawing.Color对象(即第一颜色对象),WPF中颜色值的直接保存对象为System.Windows.Media.Color对象(即第二颜色对象),因而在获取第二当前坐标处的颜色时,可以调用System.Windows.Media.Color对象中的FromArgb方法将此System.Drawing.Color对象保存的颜色值转给System.Windows.Media.Color对象保存,从而使WPF方便、快速地获取到目标显示控件中该第一坐标处的颜色,并将System.Windows.Media.Color对象获取到的第一坐标处的颜色赋值给Ellipse对象保存并显示。
在一个实施例中,方法还包括:
当当前移动点离开目标颜色背景图像时,确定当前移动点离开目标颜色背景图像时的目标坐标处的颜色为选中颜色。
在不断获取当前移动点的第一当前坐标处的颜色时,可以使用户不断看到选中颜色,而当该当前移动点离开目标颜色背景图像时,说明用户已确定最终选中颜色,不期望再进行颜色修改,则可以自动确定当前移动点离开目标颜色背景图像时的目标坐标(即鼠标、触摸笔、画笔等设备,或者指尖离开该目标颜色背景图像的位置)处的颜色即为用户最终的选中颜色。
如图4所示,本发明还提供一种颜色获取装置,包括:
第一获取模块401,被配置为在使用WPF中的目标显示控件显示目标颜色背景图像时,获取当前移动点在所述目标颜色背景图像中的第一当前坐标;
第二获取模块402,被配置为获取使用所述目标显示控件显示所述目标颜色背景图像时,所述第一当前坐标处的颜色;
第一确定模块403,被配置为将所述颜色进行保存,确定所述颜色为所述当前移动点的选中颜色。
如图5所示,在一个实施例中,所述装置还包括:
第三获取模块501,被配置为在使用WPF中的目标显示控件显示颜色背景图像时,获取当前移动点在所述颜色背景图像中的第一当前坐标之前,获取包含多种颜色的预设颜色背景图像;
处理模块502,被配置为为所述目标显示控件设置目标显示属性,以对所述预设颜色背景图像的显示属性进行调整,得到所述目标颜色背景图像,其中,所述显示属性包括:所述预设颜色背景图像的尺寸大小、形状中的一项或多项。
如图6所示,在一个实施例中,所述第二获取模块402包括:
调用子模块4021,被配置为调用Winform;
第一确定子模块4022,被配置为在所述Winform中创建目标显示对象,根据所述目标显示对象的尺寸、所述目标显示控件的尺寸和所述第一当前坐标,确定使用所述目标显示对象显示所述目标颜色背景图像时,所述当前移动点在所述目标颜色背景图像中的第二当前坐标;
获取子模块4023,被配置为获取使用所述目标显示对象显示所述目标颜色背景图像时,所述第二当前坐标处的颜色;
第二确定子模块4024,被配置为确定所述第二当前坐标处的颜色为所述第一当前坐标的颜色。
在一个实施例中,所述获取子模块4023具体被配置为:
通过所述目标显示对象,获取所述Winform的第一颜色对象获取到的所述第二当前坐标处的颜色;
所述第二确定子模块4024具体被配置为:
调用WPF中的第二颜色对象获取所述第一颜色对象获取的所述第二当前坐标处的颜色;
确定所述第二当前坐标的颜色为所述第一当前坐标处的颜色。
如图7所示,在一个实施例中,所述装置还包括:
第二确定模块701,被配置为当所述当前移动点离开所述目标颜色背景图像时,确定当前移动点离开所述目标颜色背景图像时的目标坐标处的颜色为所述选中颜色。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
最后,本发明中的颜色获取装置适用于终端设备。例如,可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。