影像與照片·社交影像調整器
重採樣濾波器解釋:最近、雙線性、雙三次和 Lanczos
· 背景
影像大小調整 重採樣 帆布
每次調整大小都必須決定新像素應該與舊像素相比是什麼顏色:最近鄰副本、雙線性平均值為 4、雙三次權重為 16、Lanczos 使用加窗 sinc。這篇文章解釋了每一個,模糊、振鈴和鋸齒之間的權衡,以及瀏覽器為您提供的功能。
同一張照片,三種工具,三種結果 - 調整大小影像的清晰度和閃光不同的具體難題
兩個調整大小工具可以產生尺寸相同但邊緣明顯不同的檔案。几何形状可能匹配,但采樣不同:每個輸出像素需要從源信息匯出的颜色,並该匯出可以有利于清晰度、平滑度或抗锯齿性。僅檔案尺寸無法辨識該方法。
Social Image Resizer 故意做出了更狹窄的承諾。在drawImage之前,它啟用影像平滑並要求高平滑品質。 Canvas 2D API 不會告訴應用程式瀏覽器選擇哪個命名內核,因此該產品無法在來源層級確定性地標記其輸出最接近、雙線性、雙三次或 Lanczos。
取樣問題 - 簡單來說,為什麼在不過濾的情況下縮小影像會產生莫爾條紋和鋸齒狀邊緣
收縮會移除樣本。如果高頻条纹、头發或網格在没有充分過滤的情况下进行映射,它们可能會變得锯齿状、闪烁或形成錯誤圖案。放大會在現有樣本位置之間建立新的樣本位置。在兩個方向上,重採樣器都會估計有限源的輸出,而不是揭示隱藏的細節。
有用的測試影像結合了對角線、單像素、重複網格和平滑漸變。以多種比例匯出並檢查一對一像素加上正常顯示尺寸。觀察結果顯示了測試的瀏覽器如何處理困難的內容,而不假裝對其內部實作進行逆向工程。
最近和雙線性是有用的概念,但 ToolAcre 不會將它們公開為選擇
最近邻概念上選擇最接近的源樣本,並倾向于保留硬像素塊。雙線性插值在概念上混合附近的樣本並通常平滑過渡。這些描述有助於解釋可見的極端情況,但 ToolAcre 並沒有提供標有任一方法的開關,且其測試無法識別引擎的核心。
不要僅從一邊推斷命名過濾器。瀏覽器實作可以根據規模優化或改變行為。唯一可靠的產品聲明是啟用了平滑並將品質屬性設為高。任何更深層的分類都需要該模組之外的特定於瀏覽器的證據。
此畫布實現不承諾雙三次行為
雙三次方法使用更廣泛的鄰域和三次加權,其變體可以用柔軟度來對抗邊緣超調。這是比較專用圖片應用程式的寶貴背景。它不是 Canvas 2D 輸出的合同,因為 render.js 既不選擇三次係數也不導入雙三次函式庫。
如果生產工作流程需要特定的立方內核,請使用對其進行命名和測試的工具。 Social Image Resizer 優先考慮本機瀏覽器可用性和本地操作。其結果應被判斷為在記錄的引擎和版本下的瀏覽器重新採樣輸出,而不是表示為一種變體的受控科學實現。
Lanczos 不在工具合約範圍內,不屬於預設項
Lanczos 使用視窗正弦思想來保留細節,同時控制鋸齒,硬邊緣可能在某些設定下顯示振鈴。该工作手册称這是許多照片工具的默认設置,但此處並未提及這種流行程度。更重要的是,ToolAcre 中沒有任何內容請求 Lanczos 的名字。
在診斷光暈時,此遺漏很重要。看到一個並不能證明 Lanczos 內核,而没有看到一個並不能證明另一種演算法。比較來源和輸出、檔案比例和瀏覽器,並避免指定應用程式無法觀察到的原因。視覺症狀可以指導測試,而無需驗證隱藏程式碼。
瀏覽器提供什麼 - 平滑切換和品質提示而不是命名過濾器,以及為什麼輸出會因瀏覽器和版本而異
瀏覽器畫佈公開 imageSmoothingEnabled 和 imageSmoothingQuality 而不是過濾器目錄。 ToolAcre 在繪製縮放來源之前立即設定第一個 true 和第二個 high。引擎可能會以不同的方式解釋提示,或者在版本之間演變,這就是為什麼相同的 JavaScript 可能會產生小的跨瀏覽器差異。
即使取樣不是,幾何形狀也保持明確。 computeFrame 傳回精確的比例和繪製尺寸; drawRect 將結果置中並偏移;輸出畫布具有整數目標尺寸。在查看瀏覽器之間的差異時,將這些已知事實與隱藏的取樣選擇分開。
這不包括什麼 - 調整大小後銳化,以及內容感知或機器學習縮放器
不存在調整大小後的銳利化、內容感知方法和機器學習重建。沒有銳化掩模控制、邊緣偵測器或生成細節模型。輸出品質控制影響有損格式的編碼,而不是調整大小後的銳利化階段。將這些視為不同的操作。
瀏覽器本機工作流程仍然有用,正是因為它簡單且可用。對於常規社會作物,檢查實際結果。對於科學成像、版式大師或像素藝術保存,請選擇具有適合該內容的明確濾鏡控制和驗證的工具。
重點:過濾器解釋了外觀 - 社交圖片調整器使用瀏覽器自己的重新採樣,因此了解這些術語可以告訴您期望什麼以及要檢查什麼
重新取樣解釋了為什麼大小並不是故事的全部,但證據必須與工具相符。 Social Image Resizer 要求平滑、高品質的畫布繪製,並將確切的核心留給瀏覽器。這足以生產有用的作物,而無需行銷代碼從未選擇的過濾器。
保留困難的測試影像,記錄瀏覽器詳細資訊並在品質重要時比較匯出。該術語有助於描述您所看到的內容;實施告訴您您可以誠實地宣告什麼。命名演演算法僅適用於程式碼或權威瀏覽器證據證明它們的地方。