乙個現代Direct2D平原Win32的顏色選擇器

2022-02-12 19:23:48 字數 2077 閱讀 4954

介紹 通常,我想要乙個選擇器或乙個漂亮的hsl滑塊或乙個alpha通道。下面是乙個用於**的單檔案庫,它與direct2d一起工作,並為選擇顏色提供了乙個現代介面。 使用的** 你有乙個單一的函式呼叫: 隱藏,複製code

#include

"colorpick.hpp"

colorpick p;

d2d1_color_f c1 = ; //

init with red

hresult hr = p.show(0, c);

if (hr == s_ok) //

color is set

還有可能,傳遞乙個帶有更多選項的可選結構: 隱藏,複製code

struct colorpickopt

;

std::vectorgst(360);

for (int i = 0; i < 360; i++)

; hsl[0] = (360 - i) / 360.0f;

hsl[0] *= 6.0f;

float rgb[3] = {};

fromhsltorgb(hsl, rgb);

gst[i].position = i / 360.0f;

gst[i].color.r = rgb[0];

gst[i].color.g = rgb[1];

gst[i].color.b = rgb[2];

gst[i].color.a = 1.0f;

}pgradientstops = 0;

lbr = 0;

p->creategradientstopcollection(

gst.data(),

360,

d2d1_gamma_2_2,

d2d1_extend_mode_clamp,

&pgradientstops

);p->createlineargradientbrush(

d2d1::lineargradientbrushproperties(

d2d1::point2f(lrect.left, lrect.top),

d2d1::point2f(lrect.right, lrect.bottom)),

pgradientstops,

&lbr);

這個線性漸變筆刷現在可以用來繪製色相條。其他線條(s、l或r、g、b、alpha)都是純實心筆刷。 鍵盤 wm_command和wm_keydown處理idok/idcancel和vk_return/vk_escape提交或取消顏色選擇。 內聯編輯 點選alpha值,r,g,b(在rgb模式下)或h,s,l(在hsl模式下)值會顯示乙個內聯編輯框(帶有es_number),允許你輸入乙個值(0-350表示h, 0-100表示alpha, 0-255表示其他)。當編輯處於活動狀態時,vk_return/vk_escape作用於編輯值。 滑鼠操作 點選: rgb值來選擇點選的顏色,色輪來選擇點選的顏色,r,g,b或h,s,l條來設定值,alpha, r,g,b或h,s,l值來內聯編輯值 阻力: rgb或hsl條設定值,色輪設定hsl值 輪行動: 在條上旋轉值,在rgb/hsl值上旋轉值 系統對話方塊 公共對話方塊選擇器可以用於那些習慣它的人。按「s」鍵將顯示常用對話方塊,並設定/獲取所選值。 的選擇器 通常情況下,你想選擇你看到的顏色,但你不能說出它的名字。控制項包括乙個選擇器,你可以點選它,然後把它拖到螢幕上(在顏色選擇器之外),它會捕獲它下面的任何顏色。它使用setcapture api。 的引數 bool alpha = 1;預設情況下,顏色選擇器也顯示alpha控制項。如果你不想改變,傳遞0給它。返回的顏色將有乙個1.0f的alpha值。int模式= 1;//從rgb開始。如果為0,則從hsl開始。bool dlg = 1;//如果為0,則為視窗而不是對話方塊。bool lupdate = 0;//如果1,在設定l時,色輪更新(較慢)bool = 1;//顯示允許使用系統通用控制項bool usepicker = 1的「s」按鈕;//顯示啟用選擇器時的十字浮動解析度= 0.1f;//色輪解析度(較小值->較小的速度比;更好的檢視) 這個專案 # include colorpick。hpp在您的應用程式中,您準備好了。github回購包括乙個示例解決方案,您可以學習。 歷史 2023年6月2日-第一次發布 本文**於:

JAVA與AS2製作乙個2D多人遊戲 3

要進行資訊互動,首先要建立一對互相連線的socket 客戶端 如下 public function client 伺服器端偵聽連線請求的serversocket類 public void run catch ioexception e 上面有一段看起來有些不明所以的xml格式 這是因為flash要訪...

Algs4 1 2 1編寫乙個Point2D的用例

1.2.1編寫乙個point2d的用例,從命令列接受乙個整數n。在單位正方形中生成n個隨機點,然後計算兩點之間的最近距離。解 public class test end if end for j end for i stddraw.setpencolor stddraw.red p1.draw p2...

如何在Cocos2D 1 0 中掩飾乙個精靈 一

原帖來自ray wunderlich寫的精彩的文章 how to mask a sprite with cocos2d 1.0,位址在 有時在你的遊戲中,你可能需要找到便利的方法去顯示精靈的一部分.一種辦法是使用第二張稱之為掩飾 mask 來完成.你設定掩飾中白色部分為要顯示的地方,而其他所有部分皆...