2013-01-05 40 views
1

我想將藝術資產的色調從一種明亮的顏色調整到另一種顏色,保持單色功能的完整。我將以RGBYTP(紅色,綠色,藍色,黃色,藍綠色或紫色)顏色開始;然後通過色調調整,我將能夠使它看起來像其他RGBYTP彩色圖像中的每一個。你如何像真正的色輪那樣調整AS3中的色調?

例如,採取這些有色眼球中的任何一個,並通過AS3色調調整,可以使任何這些其他有色眼球。網頁/遊戲設計中的常用技巧。

eyeballs http://quadradius.com/stuff/RandomImagesForLinking/hue-adjusted-eyeballs.jpg

我經常用使用GreenSock動畫平臺(TweenLite的/ TweenMax),但兩者的核心AS代碼和TweenLite的發動機似乎並不如我所料處理色調。我想以60度的增量調整色調色輪,這應該很好地調整所有6種二次色,並從中獲得完整的色彩效果。但我實際上得到的是可怕的。實際上,調整RGBYTP顏色的色調會返回非常奇怪的結果;土色調,粉彩,甚至灰色陰影。

bad-hues http://quadradius.com/stuff/RandomImagesForLinking/6-colors-all-hue-adjusted.jpg

下面是我用它來生成所有這些圈子的代碼。

for (var j:int = 0; j < 6; j++) { 
     for (var i:int = 0; i < 7; i++) { 
      var sprite:Sprite = new Sprite(); 
      var baseColor:uint; 
      if (j == 0) baseColor = 0xFF0000; 
      if (j == 1) baseColor = 0x00FF00; 
      if (j == 2) baseColor = 0x0000FF; 
      if (j == 3) baseColor = 0xFFFF00; 
      if (j == 4) baseColor = 0xFF00FF; 
      if (j == 5) baseColor = 0x00FFFF; 
      sprite.graphics.beginFill(baseColor); 
      sprite.graphics.drawEllipse(40 * i + 10, 300 + (60 * j) + 10, 40, 40);// positioning 
      addChild(sprite); 
      TweenMax.to(sprite, .5, {colorMatrixFilter:{hue:i * 60 }}); 
     } 
    } 

爲什麼AS3或TweenLite的/最高不能處理,如Photoshop或藝術家色輪的色彩?我究竟做錯了什麼?

+0

Flash僅支持RGB和ARGB色彩格式。你需要循環通過色調,並將其轉換爲RGB格式,然後再應用它 - 谷歌搜索應該提供一些算法來轉換 – 2013-01-06 00:07:04

+0

我已經使用了許多人認爲是一個很好的算法包; GreenSock平臺。它用於補間,轉換,定時器和顏色操作;幷包含「色調」功能。但即使是他們可以說是受人尊重的色調功能似乎也沒有結果。該算法的結果在包含圓圈的圖像中。例如,如果你從紫色開始,你永遠不會產生黃色。 –

回答

1

我懷疑使用GreenSock平臺使用Flash自身的fl.motion.AdjustColor,不執行RGB和HSV之間的特別重大轉變,因爲你已經發現。你必須考慮到不同顏色的感性亮度,以便它看起來很正確,所以它有點主觀。

This page有一個很好的解釋和一些示例代碼與縮放值更自然的色調轉移。您可以使用它來生成flash.filters.ColorMatrixFilter的矩陣,那麼您可能需要編寫一個函數,該函數將當前補間時間運行,並運行它以使用TweenMax。

+0

謝謝,我閱讀了不同強度下顏色的感知。事實證明,使用內置的Flash和Greensock色調代碼,根本無法生成某些顏色(取決於您以什麼顏色開始)。即紫色永遠不會變黃。我在他們的論壇上進行了一次關於它的討論,並在當時進行了更詳細的討論,因爲他們對此有更好的把握。 http://forums.greensock.com/topic/7052-hue-values-around-the-color-wheel-not-saturated-as-expected/ 我結束了類似的結果,使用矩陣,並繞過Adobe的色調碼。 –

+0

該頁面的第2步似乎正是我所能使用的。而且它比我的綠色論壇上的解決方案更加靈活。如果我有機會,我會重新訪問我的舊代碼,並使用它們的U = cos(H *π/ 180) W = sin(H *π/ 180)示例。好東西! –

0

兩種顏色不會直接在真彩輪上變黑。黃色首先變成棕色,青色首先變成藍色。黑色之前,棕色是紅色最黑的顏色。青色在黑色之前變爲藍色最深的顏色。我不知道任何Java,但我肯定會喜歡這個Java輪。 http://acko.net/blog/farbtastic-jquery-color-picker-plug-in/

黃色的眼睛正在使用RGB漸變變暗,這就是爲什麼它看起來綠色,對於青色眼睛也是如此。我在本網站上製作的表格中有編碼分級。 http://www.realcolorwheel.com/colorwheel.htm 您可以在源頁面上獲取顏色代碼。

唐,RCW

+0

漂亮的色輪,它看起來像你知道你的顏色規則!但不知道這是否回答。在Photoshop中製作的頂級圖像只是我想要的一個例子。在Tweenlite軟件包中使用內置的_Hue_函數時,我根本沒有得到這些結果(_circles_ image)。例如,如果我從紅色開始,色調函數會產生一個棕色?紫色永遠不會讓你接近黃色!藍色的一個接近黑色?這就像色調算法更適合「挑選另一種漂亮的顏色」,而不是_hue_調整後的輸出。尋找更多的AS3算法答案,但是謝謝 –