CSSDA 工作人員整理
網頁設計中的顏色趨勢來來去去,但是好的色彩工具呢?我們認為是時候在網絡上四處走動,并檢查設計師色彩工具世界的運行狀態了。結果呢?事實證明,有一些非常酷的新方法來體驗顏色,你可能想看看。在本綜述中,我們匯總了目前可用的最佳色彩工具以及一些有史以來的經典。
Hailpixel提供了一種精美簡單的方法來查找顏色值并探索光譜。移動鼠標以瀏覽或使用箭頭鍵和滾動。Hailpixel由Devin Hunt設計,Devin Hunt是一位設計師和企業家,專注于設計,技術和創業的交叉點。
從最簡單的顏色工具到最全面的顏色工具之一,Adobe的Color CC(以前稱為Kuler)允許您瀏覽數千種配色方案,使用色輪創建自己的配色方案并與社區共享。
一個材料設計調色板生成器,允許您選擇自己喜歡的顏色,并生成和下載您的材料設計調色板。
假設您是一個經常使用顏色的網頁設計師,您需要在懸停狀態下使鏈接變亮或使按鈕的邊框變暗。根據創作者肖恩·查普曼(Shaun Chapman)的說法,0to255是適合您的工具。當然,對于基本顏色,您可能會依賴內存來存儲十六進制代碼,但是使用0to255,您可以選擇要開始的顏色,并使用針對網頁設計優化的間隔接收從黑色到白色的一系列顏色。然后,只需單擊要使用的變體,十六進制代碼就會自動復制到剪貼板。
有時,掌握基礎知識會有所幫助。147種顏色是Brian Maier的心血結晶,旨在幫助網頁設計師和開發人員學習HTML和CSS顏色規范中定義的147種顏色。147 種顏色由 17 種標準色和 130 種顏色組成。該值是顏色的名稱,而不是十六進制值或 RGB 值。單擊所有顏色的網格,單擊小刷新圖標以全屏獲取新顏色。
Shutterstock Spectrum 根據您在屏幕頂部滑塊中選擇的顏色顯示大小適中的圖像,非常方便獲得一些橫向靈感。您可以添加關鍵字以提高主題的準確性,并按亮度和平衡過濾圖像。
要使用Coolors,只需點擊空格鍵即可生成配色方案,然后單擊顏色以獲取組合。一些漂亮的調整工具和易于訪問的撤消和導出按鈕使冷卻器使用起來輕而易舉。由Web/app設計師和開發人員Fabrizio Bianchi創建。
Colrd允許您通過調色板,漸變,圖案和圖像創建和共享顏色靈感。Colrd呈現精美且易于使用,由一組色彩科學家為您帶來,他們專注于尋找在網絡上體驗色彩的新方法。
Paletton似乎永遠存在(以一種好的方式),但實際上是在2002年推出的。Paletton與其他顏色生成器(如上面提到的Adobe的Color CC)共享一些功能,但是您也可以從配色方案中選擇顏色,并有效地“挖掘”以找到新的顏色可能性。
ColorZilla于2004年推出,是Firefox和Chrome的擴展,具有先進的吸管,顏色選擇器,顏色分析器和其他好東西,而Ultimate Gradient Generator則提供了一個類似Photoshop的在線CSS漸變編輯器以及圖像到CSS轉換器等。
Checkmycolors 是一種工具,用于檢查所有 DOM 元素的前景色和背景色組合,并確定當遇到顏色缺陷的人查看時,它們是否提供足夠的對比度。
Hexu.al 以單詞的形式呈現十六進制值及其含義。嗯?例如,十六進制值#abaca5變成了單詞abacas,順便說一句,這顯然是來自菲律賓的大型植物。由Zach Wolf設計和開發。
如果你有一個需要柔和的大地色調的項目,Design Seeds值得一游。Design Seeds慶祝自然界中發現的顏色,于2009年推出,因此它有很多靈感。
Colorotate也可作為iPad應用程序使用,是一款主要用于創建調色板的工具,此外,您還可以瀏覽現有調色板,然后添加,混合和共享。Colorotate與其他類似產品的不同之處在于3D風格的色輪,并允許在調色板中使用五種以上顏色。
ColorHexa 提供有關任何顏色的信息。只需在搜索字段中鍵入顏色值,ColorHexa就會提供詳細的描述,并自動將其轉換為十六進制,二進制,RGB,CMYK,HSL,HSV,CIE-Lab,Hunter-Lab,CIE-Luv,CIE-LCH,XYZ和xyY的等效值。ColorHexa還將生成匹配的配色方案,例如互補,拆分互補,類似,三色,四色和單色顏色。
沒有COLOURlovers,任何顏色工具綜述都是不完整的,COLOURlovers是您應該已經了解的經典資源。用戶創建的超過800萬種顏色,370萬調色板和470萬種圖案,您很可能會找到有用的東西。畢竟,Twitter上超過150萬粉絲不會錯;)
Contrast-A是另一個“老古董但好東西”,由Annika Hamann(DasPlankton)于2009年1月創建。這個有趣的工具允許用戶試驗顏色組合,根據輔助功能指南檢查它們并創建自定義調色板。Contrast-A 檢查顏色組合的對比度是否可接受,并根據 WCAG 2.0(亮度比)以及較舊的輔助功能指南顯示結果。
不喜歡復雜的工具?不用擔心,拾色器可能只是你的東西。只需單擊表單字段即可激活色輪,或者只需輸入所需的十六進制值,拾色器就會提取免費顏色,三元組顏色和四元顏色。如果你想要一些無意識的娛樂,那么點擊隨機按鈕,重復,重復,重復,重復;)
這在我們為設計師尋找最佳色彩工具時結束。我們希望您找到一些感興趣的東西,并記得分享它們,以幫助創作者對創建這些有用的工具并免費提供它們感到一些愛。
編輯:塵淵文化
、需求描述
人們的生活越過越豐富多彩。可是家里珍藏已久的舊相冊,經過歲月的沖洗邊角旮旯兒已泛黃。舊照片是對過往歲月的真實記錄,爺爺奶奶年輕時的相貌,衣著、神態,遵循著過去的潮流和規范。去年,百度聯合新華社獻禮改革開放40周年,發起“給舊時光上色”活動,借助AI的力量,“喚醒”爺爺奶奶手中的黑白老照片,讓每個人看到那個年代最真實的景象。
其實,借助百度【黑白圖像上色】技術,不僅可以給老照片上色,還能給黑白水墨畫等上色,讓大家體驗一把不一樣的水墨畫,也是一種新奇的感受。
當然,如果能夠給一整篇的【黑白漫畫】上色,輸出【彩色漫畫】,那這個【黑白圖像上色】技術在這方面會有很大的作為的,相信會受到很多漫畫愛好者的喜愛。
或者可以換個思維,對于【漫畫制作】這塊,應該是先畫出黑白輪廓,然后給圖片上色,如果合理利用百度【黑白圖像上色】技術,那么在畫出黑白輪廓后,參考百度【黑白圖像上色】技術處理后的圖片,然后再調整顏色的深淺明暗,這樣可以大大降低漫畫【上色】的工作量,提高漫畫【上色】的效率,制作出更加精致的漫畫。
另外,像兒童讀物等文章都會有【插畫】,可以利用【黑白圖像上色】技術,給文章的【黑白插畫】上色,提供更加好看的【彩色插畫】。
二、使用攻略
說明:本文采用C# 語言,開發環境為.Net Core 2.1,采用在線API接口方式實現。
(1)平臺接入
登陸 百度智能云-管理中心 創建 “圖像處理”應用,獲取 “API Key ”和 “Secret Key” :https://console.bce.baidu.com/ai/#/ai/imageprocess/overview/index
(2)接口文檔
文檔地址:https://ai.baidu.com/docs#/ImageProcessing-API/27271a5c
接口描述:智能識別黑白圖像內容并填充色彩,使黑白圖像變得鮮活。
請求說明
請求示例
HTTP 方法:POST
請求URL: https://aip.baidubce.com/rest/2.0/image-process/v1/colourize
URL參數:
參數 值 access_token 通過API Key和Secret Key獲取的access_token,參考”Access Token獲取”
Header如下:
參數 值 Content-Type application/x-www-form-urlencoded
Body中放置請求參數,參數詳情如下:
請求參數
參數 是否必選 類型 可選值范圍 說明 image true string - base64編碼后大小不超過4M,最短邊至少64px,最長邊最大800px,長寬比3:1以內。注意:圖片的base64編碼是不包含圖片頭的,如(data:image/jpg;base64,)
返回說明
返回參數
字段 是否必選 類型 說明 log_id 是 uint64 唯一的log id,用于問題定位 image 否 string base64編碼圖片
返回示例
{ "log_id": "6876747463538438254", "image": "處理后圖片的Base64編碼" }
(3)源碼共享
3.1-根據 API Key 和 Secret Key 獲取 AccessToken
/// /// 獲取百度access_token /// /// API Key /// Secret Key /// public static string GetAccessToken(string clientId, string clientSecret) { string authHost = "https://aip.baidubce.com/oauth/2.0/token"; HttpClient client = new HttpClient(); List> paraList = new List>(); paraList.Add(new KeyValuePair("grant_type", "client_credentials")); paraList.Add(new KeyValuePair("client_id", clientId)); paraList.Add(new KeyValuePair("client_secret", clientSecret)); HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result; string result = response.Content.ReadAsStringAsync().Result; JObject jo = (JObject)JsonConvert.DeserializeObject(result); string token = jo["access_token"].ToString(); return token; }
3.2-調用API接口獲取識別結果
1、在Startup.cs 文件 的 Configure(IApplicationBuilder app, IHostingEnvironment env) 方法中開啟虛擬目錄映射功能:
string webRootPath = HostingEnvironment.WebRootPath;//wwwroot目錄 app.UseStaticFiles(new StaticFileOptions { FileProvider = new PhysicalFileProvider( Path.Combine(webRootPath, "Uploads", "BaiduAIs")), RequestPath = "/BaiduAIs" });
2、 建立Index.cshtml文件
2.1 前臺代碼:
由于html代碼無法原生顯示,只能簡單說明一下:
主要是一個form表單,需要設置屬性enctype="multipart/form-data",否則無法上傳圖片;
form表單里面有兩個控件:
一個Input:type="file",asp-for="FileUpload" ,上傳圖片用;
一個Input:type="submit",asp-page-handler="Colourize" ,提交并返回識別結果。
一個img:src="@Model.curPath",顯示需要上色的圖片。
一個img:src="@Model.imgProcessPath",顯示上色后的圖片。
最后顯示后臺 msg 字符串列表信息,如果需要輸出原始Html代碼,則需要使用@Html.Raw()函數。
2.2 后臺代碼:
[BindProperty] public IFormFile FileUpload { get; set; } private readonly IHostingEnvironment HostingEnvironment; public List msg = new List(); public string curPath { get; set; } public string imgProcessPath { get; set; } public BodySearchModel(IHostingEnvironment hostingEnvironment) { HostingEnvironment = hostingEnvironment; } public async Task OnPostColourizeAsync() { if (FileUpload is null) { ModelState.AddModelError(string.Empty, "本地圖片!"); } if (!ModelState.IsValid) { return Page(); } msg = new List(); string webRootPath = HostingEnvironment.WebRootPath;//wwwroot目錄 string fileDir = Path.Combine(webRootPath, "Uploads//BaiduAIs//"); string imgName = await UploadFile(FileUpload, fileDir); string fileName = Path.Combine(fileDir, imgName); string imgBase64 = GetFileBase64(fileName); curPath = Path.Combine("/BaiduAIs/", imgName);//需在Startup.cs 文件 的 Configure(IApplicationBuilder app, IHostingEnvironment env)方法中開啟虛擬目錄映射功能 string result = GetImageProcessJson(imgBase64, “你的API KEY”, “你的SECRET KEY”); JObject jo =(JObject)JsonConvert.DeserializeObject(result); try { string imageProcessBase64 = jo["image"].ToString(); msg.Add("log_id:" + jo["log_id"].ToString()); string processImgName = Guid.NewGuid().ToString("N") + ".png"; string imgSavedPath = Path.Combine(webRootPath, "Uploads//BaiduAIs//", processImgName); imgProcessPath = Path.Combine("/BaiduAIs/", processImgName); await GetFileFromBase64(imageProcessBase64, imgSavedPath); } catch(Exception e1) { msg.Add(result); } return Page(); } /// /// 上傳文件,返回文件名 /// /// 文件上傳控件 /// 文件絕對路徑 /// public static async Task UploadFile(IFormFile formFile, string fileDir) { if (!Directory.Exists(fileDir)) { Directory.CreateDirectory(fileDir); } string extension = Path.GetExtension(formFile.FileName); string imgName = Guid.NewGuid().ToString("N") + extension; var filePath = Path.Combine(fileDir, imgName); using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write)) { await formFile.CopyToAsync(fileStream); } return imgName; } /// /// 返回圖片的base64編碼 /// /// 文件絕對路徑名稱 /// public static String GetFileBase64(string fileName) { FileStream filestream = new FileStream(fileName, FileMode.Open); byte[] arr = new byte[filestream.Length]; filestream.Read(arr, 0, (int)filestream.Length); string baser64 = Convert.ToBase64String(arr); filestream.Close(); return baser64; } /// /// 文件base64解碼 /// /// 文件base64編碼 /// 生成文件路徑 public static async Task GetFileFromBase64(string base64Str, string outPath) { var contents = Convert.FromBase64String(base64Str); using (var fs = new FileStream(outPath, FileMode.Create, FileAccess.Write)) { fs.Write(contents, 0, contents.Length); fs.Flush(); } } /// /// 圖像處理Json字符串 /// /// 圖片base64編碼 /// API Key /// Secret Key /// public static string GetImageProcessJson(string strbaser64, string clientId, string clientSecret) { string token = GetAccessToken(clientId, clientSecret); string host = "https://aip.baidubce.com/rest/2.0/image-process/v1/colourize?access_token=" + token; Encoding encoding = Encoding.Default; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host); request.Method = "post"; request.KeepAlive = true; string str = "image=" + HttpUtility.UrlEncode(strbaser64); byte[] buffer = encoding.GetBytes(str); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default); string result = reader.ReadToEnd(); return result; }
三、效果測試
1、頁面:
2、識別結果:
2.1
2.2
2.3
2.4
2.5
四、產品建議
1、試了好幾張黑白圖片,發現百度的【黑白圖片上色】技能給山水、建筑物等實物上色會比較鮮艷,結果也比較滿意,而對于純植物、人物素描等黑白圖片則喜歡涂上【紅色】,變化不是很大,這方面可能需要再改進一下。
2、如果能夠降低對輸入圖片的大小、長寬的限制,就更好了。
3、如果能給【黑白圖像】涂上不同的顏色,然后讓用戶選擇自己喜歡的那張,那就更加好了,畢竟每個人的審美觀念不同,喜歡的圖片顏色也不一樣的。
4、若【黑白圖像上色】可以輸出多個不同顏色的結果,那么就可以應用到【漫畫制作】中去,在漫畫完成【線稿】后,可以利用百度【黑白圖像上色】技術,提供不用顏色的【上色圖】,為漫畫【上色】這一步驟提供參考,大大降低【上色】的難度,提高【上色】效率,最終制作出更加精致的【漫畫】。
5、可以嘗試開發【批量黑白圖像】處理功能的應用,比如對一個壓縮包、對一個文件夾內的所有圖片進行【上色】處理,然后批量輸出結果,這樣就可以對【黑白漫畫】進行【上色】處理,“制作”出【彩色漫畫】了。
6、一般像兒童讀物等文章都會有【插畫】,可以利用【黑白圖像上色】技術,給文章的【黑白插畫】上色,提供更加好看的【彩色插畫】。
原文鏈接:https://ai.baidu.com/forum/topic/show/953084
變文字h1{
background-image: linear-gradient(to right, #c6ffdd, #fbd786, #f7797d);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
}
編寫css重置時,添加這些屬性以改善媒體默認值。
img, picture, video, svg {
max-width: 100%;
object-fit: contain; /* preserve a nice aspect-ratio */
}
使用列屬性為文本元素制作漂亮的列布局。
p{
column-count: 3;
column-gap: 5rem;
column-rule: 1px solid salmon; /* border between columns */
}
使用 position 居中元素div{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
逗號分隔的列表li:not(:last-child)::after{
content: ',';
}
平滑的滾動 html {
scroll-behavior: smooth;
}
hyphens 告知瀏覽器在換行時如何使用連字符連接單詞。可以完全阻止使用連字符,也可以控制瀏覽器什么時候使用,或者讓瀏覽器決定什么時候使用。
避免不必要的 span ,并使用偽元素來設計你的內容,同樣第一個字母的偽元素,我們還有第一行的偽元素。
h1::first-letter{
color:#ff8A00;
}
accent-color 屬性能夠使用自定義顏色值重新著色瀏覽器默認樣式提供的表單控件的強調顏色。
Image filled texth1{
background-image: url('illustration.webp');
background-clip: text;
color: transparent;
}
使用 placeholder 偽元素來改變 placeholder 樣式:
input::placeholder{
font-size:1.5em;
letter-spacing:2px;
color:green;
text-shadow:1px 1px 1px black;
}
使用顏色旋轉濾鏡改變元素顏色。
button{
animation: colors 1s linear infinite;
}
@keyframes colors {
0%{
filter: hue-rotate(0deg);
}
100%{
filter: hue-rotate(360deg);
}
}
clamp() 函數的作用是把一個值限制在一個上限和下限之間,當這個值超過最小值和最大值的范圍時,在最小值和最大值之間選擇一個值使用。它接收三個參數:最小值、首選值、最大值。
h1{
font-size: clamp(5.25rem,8vw,8rem);
}
設置選中元素的樣式。
::selection{
color:coral;
}
將列表樣式類型設置為十進制前導零。
li{
list-style-type:decimal-leading-zero;
}
自定義光標html{
cursor:url('no.png'), auto;
}
caret-color 屬性用來定義插入光標(caret)的顏色,這里說的插入光標,就是那個在網頁的可編輯器區域內,用來指示用戶的輸入具體會插入到哪里的那個一閃一閃的形似豎杠 | 的東西。
CSS偽類 :only-child 匹配沒有任何兄弟元素的元素。等效的選擇器還可以寫成 :first-child:last-child 或者 :nth-child(1):nth-last-child(1) ,當然,前者的權重會低一點.
.parent{
display: grid;
place-items: center;
}
text-indent 屬性能定義一個塊元素首行文本內容之前的縮進量。
p{
text-indent:5.275rem;
}
CSS 屬性 list-style-type 可以設置列表元素的 marker(比如圓點、符號、或者自定義計數器樣式)。
li{
list-style-type:'';
}
作者:knaagar 譯者:前端小智 來源:dev 原文:https://dev.to/devsyedmohsin/css-tips-ad-tricks-you-will-add-to-cart-163p
歡迎長按圖片加刷碗智為好友,我會第一時間和你分享前端行業趨勢,學習途徑,搞怪趣事,生活中的另一面幽默等等。新的一年我們一起洗刷刷!!!!!!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。