大多數圖片具有三個數據通道:紅色、綠色和藍色,通常稱為 RGB 數據。 圖像中的每個像素都有每個顏色通道的值,在 JMP 中 (0,0,0) 將是黑色、(1,1,1) 白色、(1,0,0) 紅色和 (0.5,0.5 ,0.5) 灰色。
網頁設計師喜歡另一種透明的信息渠道;圖標通常有透明區域,可以讓背景顯示出來。 該通道稱為 alpha 通道並變為 RGBA。
Alpha 通道和顏色通道一樣,可以有分數值; alpha 和 1 - alpha 是用於生成結果的前景和背景的分數。 如果您看起來不太近,結果會非常好。
Alpha transparency around JMP's iconJMP 圖標周圍的 Alpha 透明度
您可以通過運行附加的 AlphaIcon.jmpapp 對此進行試驗。 圖標後面的漸變通過透明區域顯示出來,邊緣在藍色和綠色或藍色和橙色之間交叉淡入淡出。 0.0 的 alpha 值讓漸變顯示; 1.0 顯示圖標,分數值顯示交叉淡化。 (我使用放大鏡應用程序來獲得大像素化圖像。 我使用 App Builder 將圖標框浮動在帶有漸變的圖形上。)
上面的示例是使用 alpha 通道的典型方式。 下面的例子是一個變體。 JSL 使用 RGB 值繪製顏色並使用 alpha 值繪製白(或黑)線。 還有其他方法可以獲得相同的效果,但這種方法不需要額外的代碼來合併數據。 線條的顏色由包含圖像框的邊框框的背景色決定。 當 alpha 值為 0 時,顯示背景。 在 render 函數中,組合了兩個數組 bitcolor 和 bitcurve 來製作圖像。 bitcurve 是用 1.0 構建的,該位置應該出現線條,因此 1-bitcurve 生成所需的 alpha 通道。
{red,green,blue} = colortorgb(bitcolor);
image=newimage("rgba",{red,green,blue,1-bitcurve});將結果從黑底白線更改為白底黑線是通過更改邊框顏色來完成的。
newwindow("curves",bb=borderbox(textbox("")));
bb<<SETBACKGROUNDCOLOR></SETBACKGROUNDCOLOR>邊框框是用一個虛擬文本框子項創建的,該子項被第一個圖像替換。
(bb<<CHILD></CHILD>
左邊是位曲線,中間是位色,右邊是 RGBA。 在此圖像中,RGB 數據大部分為黑色,白色背景顯示在 alpha 通道 > 0.0 的位置。
Border box with a white background白色背景的邊框框
在此圖像中,RGB 數據大部分為白色,黑色背景反而顯示出來。
Border box with a black background黑色背景的邊框框
在上面的兩個圖像中,右側顯示了邊界框背景顏色上顏色的 alpha 混合。
附加的 curveyBlog.jsl 通過增加活動線、隨機分支並拍照來構建圖像。 視頻是這裡並希望最大化。
上一個例子.
謝謝! 我喜歡具有多個可調參數的算法,這些參數有助於指導隨機元素的使用方式。 這個一直運行直到藤蔓用完足夠的空間以防止進一步生長。 一旦選擇了參數,我就運行了幾次以獲得一組我喜歡的圖像,以正確的步長來製作我喜歡的視頻長度。