圖片和照片 · 瀏覽器圖片和繪圖編輯器
手繪圖在瀏覽器中的工作原理:指向像素的指標事件
· 工作原理
圖片編輯 帆布 瀏覽器處理
用滑鼠、手指或手寫筆繪製的徒手筆畫是位置樣本流,瀏覽器將其轉換為平滑的線條。這篇文章遵循從輸入事件到繪製像素的一筆。
搖晃的圓圈變得平滑 - 您繪製的內容與編輯器記錄的內容
手繪標記從取樣位置開始,而不是連續的色帶。從平滑的擺動圓圈開始:您繪製的是一個手勢,而編輯器記錄採樣位置。對於此筆畫管道,原始程式碼確認統一的pointerdown、pointermove、pointerup 和pointercancel 處理程序會擷取一個活動指標並透過縮放將CSS 座標映射回來。畫筆以基於其寬度四分之一的間距在稀疏樣本之間進行插值,但它忽略壓力值。
使用滑鼠、手指或手寫筆圈出三個答案,並觀察一個手勢在指標釋放後成為一個歷史條目。圓帽和連接產生連續的手繪筆觸;水龍頭仍然會畫出圓形標記。即使硬體報告更豐富的輸入,壓力藝術和向量手寫仍然處於此路徑之外。
指標事件:一個 API 中的滑鼠、觸控和筆 — 瀏覽器如何報告位置、壓力(如果可用)以及實際獲得的取樣率
手繪標記從取樣位置開始,而不是連續的色帶。指標事件將滑鼠、觸控和筆輸入置於一個 API 後面,以裝置提供的取樣率報告位置,有時還會報告壓力。對於此筆劃管道,原始程式碼確認畫筆以基於其寬度四分之一的間距在稀疏樣本之間進行插值,但它忽略壓力值。圓帽和連接產生連續的手繪筆觸;水龍頭仍然會畫出圓形標記。
用滑鼠、手指或手寫筆圈出三個答案,並觀察一個手勢在指標釋放後成為一個歷史條目。裝置像素比(上限為 3)僅銳利化螢幕上的備用儲存空間;檔案像素可保持影像解析度。即使硬體報告更豐富的輸入,壓力藝術和向量手寫仍然處於此路徑之外。
指標事件統一了滑鼠、觸控和筆的位置,但不消耗壓力
手繪標記從取樣位置開始,而不是連續的色帶。將點變成路徑意味著將樣本與線段或曲線連接起來,而平滑總是會犧牲一些保真度來換取易讀性。對於此筆畫管道,原始碼確認圓帽和連接會產生連續的徒手筆畫;水龍頭仍然會畫出圓形標記。裝置像素比(上限為 3)僅銳利化螢幕上的備用儲存空間;檔案像素可保持影像解析度。
用滑鼠、手指或手寫筆圈出三個答案,並觀察一個手勢在指標釋放後成為一個歷史條目。統一的pointerdown、pointermove、pointerup 和pointercancel 處理程序會擷取一個活動指標並透過縮放將CSS 座標映射回來。即使硬體報告更豐富的輸入,壓力藝術和向量手寫仍然處於此路徑之外。
在畫布上描畫路徑 — 線寬、帽子、連接和抗鋸齒,以及為什麼描邊邊緣從來都不是純單色像素
手繪標記從取樣位置開始,而不是連續的色帶。撫摸路徑會增加寬度、上限、連接和抗鋸齒,這就是為什麼邊緣包含混合像素而不是完美的純色。對於此筆觸管道,原始碼確認裝置像素比上限為 3,僅銳利化螢幕上的後備儲存;檔案像素可保持影像解析度。統一的pointerdown、pointermove、pointerup 和pointercancel 處理程序會擷取一個活動指標並透過縮放將CSS 座標映射回來。
用滑鼠、手指或手寫筆圈出三個答案,並觀察一個手勢在指標釋放後成為一個歷史條目。畫筆以基於其寬度四分之一的間距在稀疏樣本之間進行插值,但它忽略壓力值。即使硬體報告更豐富的輸入,壓力藝術和向量手寫仍然處於此路徑之外。
裝置像素比 — 為什麼繪圖畫布需要比高密度顯示器上的螢幕點更多的背景像素,以及如果不需要的話會發生什麼
手繪標記從取樣位置開始,而不是連續的色帶。裝置像素比解釋了為什麼繪圖畫布需要比高密度顯示器上的螢幕點更多的背景像素,以及為什麼低解析度的背景儲存看起來很柔和。對於此筆畫管道,原始程式碼確認統一的pointerdown、pointermove、pointerup 和pointercancel 處理程序會擷取一個活動指標並透過縮放將CSS 座標映射回來。畫筆以基於其寬度四分之一的間距在稀疏樣本之間進行插值,但它忽略壓力值。
使用滑鼠、手指或手寫筆圈出三個答案,並觀察一個手勢在指標釋放後成為一個歷史條目。圓帽和連接產生連續的手繪筆觸;水龍頭仍然會畫出圓形標記。即使硬體報告更豐富的輸入,壓力藝術和向量手寫仍然處於此路徑之外。
工作範例:在拍照的工作表上圈出三個答案 - 如何捕捉、繪製和匯出每個筆劃
手繪標記從取樣位置開始,而不是連續的色帶。在拍攝的工作表上圈出三個答案,路徑就變成了一系列樣本、插值畫筆標記和最終匯出的像素。對於此筆劃管道,原始程式碼確認畫筆以基於其寬度四分之一的間距在稀疏樣本之間進行插值,但它忽略壓力值。圓帽和連接產生連續的手繪筆觸;水龍頭仍然會畫出圓形標記。
用滑鼠、手指或手寫筆圈出三個答案,並觀察一個手勢在指標釋放後成為一個歷史條目。裝置像素比(上限為 3)僅銳利化螢幕上的備用儲存空間;檔案像素可保持影像解析度。即使硬體報告更豐富的輸入,壓力藝術和向量手寫仍然處於此路徑之外。
這不包括什麼 - 壓敏畫筆、向量匯出和手寫識別
手繪標記從取樣位置開始,而不是連續的色帶。邊界包括壓感畫筆、向量匯出和手寫識別。對於此筆畫管道,原始碼確認圓帽和連接會產生連續的徒手筆畫;水龍頭仍然會畫出圓形標記。裝置像素比(上限為 3)僅銳利化螢幕上的備用儲存空間;檔案像素可保持影像解析度。
用滑鼠、手指或手寫筆圈出三個答案,並觀察一個手勢在指標釋放後成為一個歷史條目。統一的pointerdown、pointermove、pointerup 和pointercancel 處理程序會擷取一個活動指標並透過縮放將CSS 座標映射回來。即使硬體報告更豐富的輸入,壓力藝術和向量手寫仍然處於此路徑之外。
重點:您的裝置進行繪圖 - 瀏覽器圖片和繪圖編輯器如何在本地捕獲筆畫並從不將它們發送到任何地方
手繪標記從取樣位置開始,而不是連續的色帶。重點是本地且具體的:您的裝置提供指標輸入,而瀏覽器影像和繪圖編輯器在瀏覽器中擷取並渲染筆畫。對於此筆觸管道,原始碼確認裝置像素比上限為 3,僅銳利化螢幕上的後備儲存;檔案像素可保持影像解析度。統一的pointerdown、pointermove、pointerup 和pointercancel 處理程序會擷取一個活動指標並透過縮放將CSS 座標映射回來。
用滑鼠、手指或手寫筆圈出三個答案,並觀察一個手勢在指標釋放後成為一個歷史條目。畫筆以基於其寬度四分之一的間距在稀疏樣本之間進行插值,但它忽略壓力值。即使硬體報告更豐富的輸入,壓力藝術和向量手寫仍然處於此路徑之外。