`

仿photoshop中的取色器,制作思路

 
阅读更多

早期在论坛的帖子,保存留念。有点感慨那时的学习尽头。

 


 

 

 

源地址: http://hi.baidu.com/gzane24/blog/item/4756042273fabaa64623e897.html

 

AcolorPicker组件是我花了3天时间做出来的,遇到了很多问题,但都被我一一解决了,做出来后很高兴,就迫急待的放到了Buleidea上,但是反映并不大,这点让我有点失落,好了进入正题。

         photoshop中的取色起主要分为两个部分,一个是主取色板,还有个是色相板。先来看下主取色板,不管它是什么颜色,都有个规律:就是从上到下从白到 黑,从左到右颜色从白到它的色相值的相关值(色相值就是一个颜色在饱和度和明暗度都为100%的时候的RGB值),这里要实现一种颜色就是由它的色相值和 它的明暗度和饱和度来决定的。再分析下色相板,长256像素,颜色从R-G-B-R,可以看作一个圆环分成3段吧。

        主取色板的制作,经过上面的简单分析,做个主取色板应该不难,做两个256*256的Shap,用Shap.Graphics 的beginGradientFill 的函数,分别填充两个从白到黑(A),从白到色象值(B)的两个渐变,然后将A旋转90度,将B的混合模式设置为Muti,这样就得到了在某一色象值下的主取色板图。

 

 

  ==》

        色象条的制作,仔细看看photo中的色相条,当然也是用Shap.Graphics的beginGradientFill 的 函数来实现渐变,那么怎么来准确的表示颜色呢, 经过我反复的在Photoishop中测试,颜色从上到下是从正红色(FF0000)开始,RGB中的R值始终为始终为255,G值始终为0,B值以每 Px6的值递增从0-252,但下一个像素的颜色值是 FC00FF,也就是下一个像素的R值一下边成252,G还为0,B值变成255,然后R值以每像素6的值递减,G和B不变,一直减到 0000FF ,R为0(也就是正蓝色 Blue),在过的话R和B不变,G值从0-252。好了有了规律了,这是个圆,分成3部分,一部分称为一个色系,分别是R    G      B,
每个色系又分为两部分,比如在R色系,分为Rg和Rb,Rg的范围是0-252。
好了,将上面的关键色,作为beginGradientFill (type:String , colors:Array , alphas:Array , ratios:Array , matrix:Matrix = null)中的   colors 中的值,将ratios设置为[0,42,43,85,127,128,170,212,213,255],为什么这样设置,大家自己研究把。
好了,界面都做好了,剩下的工作就是根据 主取色板中的 X    Y 位置和色象条的值来,取得一种颜色的值,过程我就不说,我把函数贴下:

 

 

public static function rgbTouint(rgbarr:Array):uint//ok   uintTorgb
   {
    return rgbarr[0]*Math.pow(256,2)+rgbarr[1]*Math.pow(256,1)+rgbarr[2]
   }  
  
   public static function computeXTC(c:uint,x:Number,y:Number):uint
   {
    var rgbArr:Array = new Array();
    rgbArr = uintTorgb(c);
    //trace(rgbTouint(rgbArr).toString(16))
    if(rgbArr[0] == 255)//red system
    {
     //trace(rgbArr[1])
     rgbArr[0] = -y+255;   //R
     rgbArr[1] = Math.round(-(((rgbArr[1]-255)/Math.pow(255,2)*x)+1)*y+(rgbArr[1]-255)/255*x+255);//G
     rgbArr[2] = Math.round(-(((rgbArr[2]-255)/Math.pow(255,2)*x)+1)*y+(rgbArr[2]-255)/255*x+255);
     trace("X="+x+"Y="+y+"   "+
     rgbArr[0].toString(16)+"   "+
     rgbArr[1].toString(16)+"   "+
     rgbArr[2].toString(16)+"   "+
     "    AAAAAAAAAA")
     return rgbTouint(rgbArr);
    }
    if(rgbArr[1] == 255)//green system
    {
     rgbArr[1] = -y+255;
     rgbArr[0] = Math.round(-(((rgbArr[0]-255)/Math.pow(255,2)*x)+1)*y+(rgbArr[0]-255)/255*x+255);//G
     rgbArr[2] = Math.round(-(((rgbArr[2]-255)/Math.pow(255,2)*x)+1)*y+(rgbArr[2]-255)/255*x+255);    
     //trace(rgbTouint(rgbArr).toString(16)+"    BBBBBBBBBBBB")
     return rgbTouint(rgbArr);
    }
    if(rgbArr[2] == 255)// blue system
    {
     rgbArr[2] = -y+255;
     rgbArr[0] = Math.round(-(((rgbArr[0]-255)/Math.pow(255,2)*x)+1)*y+(rgbArr[0]-255)/255*x+255);//G
     rgbArr[1] = Math.round(-(((rgbArr[1]-255)/Math.pow(255,2)*x)+1)*y+(rgbArr[1]-255)/255*x+255);    
     //trace(rgbTouint(rgbArr).toString(16)+"    CCCCCCCCCC")
     return rgbTouint(rgbArr);
    }
    return   rgbTouint(rgbArr);
}
  • 大小: 14.7 KB
  • 大小: 49.5 KB
  • 大小: 2.8 KB
  • 大小: 2.6 KB
分享到:
评论

相关推荐

    类似photoshop取色功能的取色器

    "类似Photoshop取色功能的取色器"就是这样一个专为颜色选取而设计的工具,它模仿了Adobe Photoshop中的颜色选择功能,帮助用户获取屏幕上的任意颜色代码,以便在自己的项目中使用。 Photoshop作为一款专业的图像...

    仿Photoshop取色功能,非常不错的网页JS拾色器.rar

    JavaScript仿Photoshop的取色功能,一款非常棒的网页JS拾色器——ColorPicker编写实战源代码,模仿PhotoShop的设色器的功能,将其迁移到WEB应用中,当然了,本拾色器并不是一个完美的拾色器,因为只是模拟了HSV模式...

    JavaScript拾色器ColorPicker编写实战(仿Photoshop)

    仿Photoshop取色功能的JavaScript拾色器——ColorPicker编写实战源代码,模仿PhotoShop的设色器的功能,将其迁移到WEB应用中,当然了,本拾色器并不是一个完美的拾色器,因为只是模拟了HSV模式,而且只提供一个...

    C#高仿Photoshop CS6界面

    在本文中,我们将深入探讨如何使用C#语言创建一个高仿Photoshop CS6的用户界面。C#是一种广泛用于开发Windows应用程序的编程语言,尤其在构建具有丰富图形用户界面(GUI)的应用时,其强大的Windows Forms(WinForms...

    仿photoshop调整曲线

    在Photoshop中,用户可以通过绘制一条曲线来定义这种变换。曲线的形状决定了图像中各个亮度级别的调整程度。例如,向上拉伸曲线可以增加图像的整体亮度,而向下压缩则会降低亮度。曲线的不同部分对应着图像的阴影、...

    自己制作的仿Photoshop界面。

    自己用VC的MDC多文档制作的仿Photoshop界面。目前只要是仿制了Photoshop的工具栏。并且带有声音(鼠标滑过和点击时)。 只有可执行程序,无源码。

    PHOTOSHOP.LAB修色圣典.pdf

    Lab模式是Photoshop中重要的三大色彩模式之一。RGB模式是基于光学原理的,而CMYK模式是颜料反射光线的色彩模式,Lab模式不依赖于光线,也不依赖于颜料,弥补了RGB与CMYK两种色彩模式的不足。  在图像编辑中使用Lab...

    PHOTOSHOP.LAB修色圣典[中文全彩][六分卷][过路人odv1].part4

    Lab模式是Photoshop中重要的三大色彩模式之一。RGB模式是基于光学原理的,而CMYK模式是颜料反射光线的色彩模式,Lab模式不依赖于光线,也不依赖于颜料,弥补了RGB与CMYK两种色彩模式的不足。  在图像编辑中使用Lab...

    13944 Photoshop CS平面设计与制作-素材图.rar

    13944 Photoshop CS平面设计与制作-素材图.rar 13944 Photoshop CS平面设计与制作-素材图.rar 13944 Photoshop CS平面设计与制作-素材图.rar

    电子教案资料-《Photoshop平面设计与制作(第二版)》-A06-4050.zip

    2. **图层管理**:在Photoshop中,图层是设计的核心元素。教程将详细讲解如何创建、编辑、隐藏、调整图层顺序以及使用蒙版来控制图层可见性,使设计过程更加灵活。 3. **色彩理论与调整**:了解色彩模式(RGB、CMYK...

    仿photoshop

    "仿photoshop"是一个项目或软件,旨在模仿Adobe Photoshop的功能,使用.NET技术进行开发。.NET技术是微软推出的一种开发框架,它为开发者提供了构建各种类型的应用程序的能力,包括桌面应用、Web应用以及移动应用。...

    PHOTOSHOP制作吸色器

    吸色器 制作photoshop图片的小工具 比较使用 在制作图片的选择颜色过程中很有作用

    易语言仿PhotoShop浮动工具栏源码

    在Photoshop中,这些浮动工具栏包含画笔、橡皮擦、选择工具等,是用户进行图像处理的主要操作界面。在易语言中实现这样的功能,需要对GUI(图形用户界面)编程有深入理解。 易语言源码分享站提供此代码,表明它是一...

    photoshop.cs2.9.0.中文绿色完整增强版

    3. **图层与蒙版**:在 Photoshop CS2 中,图层系统是实现复杂图像编辑的关键。用户可以在不同图层上独立工作,通过调整图层顺序、透明度和混合模式来创建复杂的视觉效果。蒙版功能则允许用户非破坏性地隐藏或显示...

    Photoshop实例教程-PS制作500典例

    Photoshop中的滤镜能创造出各种独特的艺术效果,包括: 1. 模糊滤镜:如高斯模糊、径向模糊,可以柔化图像或突出主体。 2. 锐化滤镜:如USM锐化,用于提升图像细节清晰度。 3. 噪点滤镜:模拟胶片噪点,为图片增加...

    PHOTOSHOP.LAB修色圣典[中文全彩][六分卷][过路人odv1].part2

    Lab模式是Photoshop中重要的三大色彩模式之一。RGB模式是基于光学原理的,而CMYK模式是颜料反射光线的色彩模式,Lab模式不依赖于光线,也不依赖于颜料,弥补了RGB与CMYK两种色彩模式的不足。  在图像编辑中使用Lab...

    photoshop修色圣典

    在Photoshop中,LAB颜色模式一直以其强大的色彩调整能力而闻名于世。本书《Photoshop修色圣典》重点介绍了如何通过LAB模式来快速调整图像色彩,帮助用户在短短的一分钟内轻松调出满意的特殊效果。对于摄影师、平面...

    photoshop风格拾色器

    Photoshop风格拾色器是一种强大的颜色选取工具,它模拟了Adobe Photoshop软件中的色彩选择功能,让用户在编程或设计过程中能够方便地获取所需的颜色值。在IT行业中,颜色选取工具是必不可少的,尤其对于设计师和...

    photoshop 中文手册+API集合.rar

    JavaScript在Photoshop中可以实现脚本化的自动化任务,这对于批量处理、自定义工作流程或者创建交互式的设计项目尤为有用。通过JavaScript,用户可以控制Photoshop的各项功能,比如打开、保存文件,调整图像参数,...

    Photoshop7.0.1落雪梨花全功能绿色精简版

    Photoshop7.0.1落雪梨花全功能绿色精简版

Global site tag (gtag.js) - Google Analytics