整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          使用JavaScript開發(fā)一個Photoshop插

          使用JavaScript開發(fā)一個Photoshop插件

          為前端開發(fā)者,我們可以利用Web技術在非常多的環(huán)境下開發(fā)應用,為相關的用戶提供服務。其中,以Photoshop為首的Adobe系列工具是我們時常要去面對的一個平臺級應用。Photoshop在圖像處理上有著很強大的功能,用戶量也非常可觀,而且其功能在前端開發(fā)的一些情況下也用得到,因此筆者認為Photoshop相關的Web技術具有很不錯的價值。

          本文將引導大家使用JavaScript開發(fā)一個Photoshop插件。

          CEP:通用擴展平臺

          Adobe作為一家歷史悠久的軟件公司,已經(jīng)給開發(fā)者提供了相對成熟的擴展開發(fā)技術棧,被稱作CEP——Common Extensibility Platform(通用擴展平臺)。

          CEP擴展基于Web技術,可以在Adobe Photoshop、Adobe Illustrator、Adobe InDesign等全系列應用中運行,并且可以訪問這些應用和外部操作系統(tǒng)環(huán)境的API。

          CEP應用的結構可以被分為五個抽象層級:

          1. 用戶層,用戶所得到的、構建出來的應用外部;
          2. 宿主應用層,我們的CEP擴展在宿主應用中被配置好后,會在嵌入的CEF(一個開源的、嵌入基于Chromium內(nèi)核瀏覽器的簡單框架)中成功渲染;
          3. UI層,就是基于HTML文件構建的WEB頁面;
          4. Javascript層,運行在UI層頁面上的JavaScript腳本,比起一般Web應用的環(huán)境里內(nèi)置了更多的功能——可以訪問Extendscript層與一些宿主應用原生功能的API以及本機中Nodejs的API
          5. Extendscript層,運行在宿主應用內(nèi)部的腳本,具有訪問宿主應用的內(nèi)部API的能力,可以和JavaScript層之間通信;

          所謂宿主應用,就是我們CEP擴展運行在的Adobe程序,例如Adobe Photoshop等,同時后文我們也默認CEP的宿主程序是Adobe Photoshop

          ExtendScript

          作為一個類Web應用,上面四層相對前端開發(fā)者來說都比較好理解,這一節(jié)我們來看下ExtendScript層:

          ExtendScript腳本可以用三套不同語言去編寫,分別為JavaScript、VBScript和AppleScript。三種語言功能上沒有任何區(qū)別。鑒于本文面向的是各位前端工程師,我們果斷選擇前者,同時文章的后文我們也是默認選擇JavaScript版本的ExtendScript。

          ExtendScript有以下特點:

          • 區(qū)別于 CEP 擴展中后綴為.js的 JavaScript 文件,操作ExtendScript 的JavaScript文件后綴名為.jsx

          這里的.jsx文件和react用到的.jsx文件完全不同,如果你在自己的CEP應用中引入了react,記得把它們分開以避免混淆

          • ExtendScript在全局下內(nèi)置了用來獲取和操作Adobe應用和文件內(nèi)容的各種API
          • Adobe應用中,ExtendScript腳本和CEP中的JavaScript腳本運行于兩個不同的引擎,如果我們選擇JavaScript語言接口的ExtendScript腳本,對應的引擎僅僅兼容至 ECMAScript3的標準

          了解了Extendscript之后,我們再來看一下CEP擴展各層級之間的橫向關系:

          • CEP擴展中的JavaScript代碼會在CEP JavaScript VM 中運行,比起一般的Web應用,增加了調用Node.js的API與操作系統(tǒng)交互,以及通過引入 CSInterface.js[3] 調用ExtendScript的功能
          • 宿主程序中,作為ExtendScript的JavaScript代碼會在另一個環(huán)境下——Host JavaScript VM中被解析
          • 在這一個類Web應用中包含兩個腳本環(huán)境,兩個環(huán)境雖然都是JavaScript,而且可以通過傳遞字符串相互通信,但是是其上下文是相互隔離的,一定要區(qū)分開來

          關于Photoshop中,ExtendScript具體可以調用的API,我們可以直接看Adobe的官方手冊:ADOBE PHOTOSHOP SCRIPTING[1]

          項目構建

          在動手開發(fā)前,我們先把運行CEP擴展的各種要素準備齊全。

          首先我們來看下CEP擴展需要的目錄結構:

          • CSXS/manifest.xml必需,項目的配置文件,配置CEP擴展應用的窗體大小、入口的html文件地址、入口jsx(ExtendScript)文件地址、版本兼容、啟動選項等信息,由于篇幅所限我們不在本文里具體展開,官方提供了配置文件的指南:Configure-your-extension-in-manifestxml[2]
          • client/index.htmlclient/index.jsclient/style.css:CEP應用相關頁面、腳本、樣式,就是我們CEP擴展和Web相關的全部文件
          • client/CSInterface.js:Adobe官方提供的工具庫,需要在JavaScript層引入,封裝并提供了訪問ExtendScript層和一些原生功能的API,官方也在github上提供了文件CSInterface.js。


          這個工具庫大概一千多行,其中很大一部分是描述各個函數(shù)功能的注釋,所以可以直接通過閱讀注釋來學習這個工具庫的用法。

          CEP擴展中的JavaScript環(huán)境下本身就內(nèi)置了調用ExtendScript環(huán)境的類,引入的CSInterface.js是對環(huán)境里調用ExtendScript環(huán)境的類進行封裝使得開發(fā)者更便于調用而已,所以引入CSInterface.js并不是必要的。

          • host/index.jsx:ExtendScript的腳本,訪問宿主應用的內(nèi)部API的能力,在CEP擴展中,ExtendScript文件有兩種加載方式:
          • 在CEP擴展內(nèi)用JavaScript通過CSInterface.js封裝好的方法主動進行加載
          • manifest.xml中通過配置入口的jsx(ExtendScript)文件的腳本,在CEP擴展應用運行的第一時間進行加載

          最后,我們要把建立好的CEP擴展的目錄放到Photoshop指定的位置:

          mac:~/Library/Application Support/Adobe/CEP/extensions

          win:{Photoshop安裝路徑}\Required\CEP\extensions

          這樣Photoshop就可以加載我們開發(fā)的擴展,出現(xiàn)在其菜單欄中的「窗口」-「擴展」中。

          debug模式與調試

          看了這么多概念,我們動手試試吧!

          新建CEP擴展的目錄之后,我們嘗試在Photoshop菜單欄的「窗口」-「擴展」中運行擴展,就發(fā)現(xiàn)了一個問題:

          這是因為我們新建的CEP擴展沒有經(jīng)過簽名認證。

          為了繞過這個認證,我們需要打開Photoshop的debug模式:

          • 首先,我們要獲取自己當前機器上Adobe CEP的版是CEP幾,關于Adobe不同應用的種類和版本的簡稱,我們可以看官方提供的對應:Applications Integrated with CEP[4]
          • 得到當前CEP的版本后,我們可以通過下面的方法進入debug模式(記得將下列CSXS.[n]中的[n]用你目前的CEP版本替換)
          • 如果你是Windows用戶,你需要:
          • 打開 regedit
          • 找到HKEY_CURRENT_USER/Software/Adobe/CSXS.[n]
          • 然后添加一個叫PlayerDebugMode的字段
          • 設置值為string類型的"1"
          • 如果你是macOS用戶,你需要:
          • 打開終端輸入:defaults write com.adobe.CSXS.[n] PlayerDebugMode 1
          • 你需要在終端輸入ps -axu $USER|grep cfprefsd,找到cfprefsd這個進程的pid,然后用kill命令刪掉它(或者你也可以直接重新啟動你的機器)。

          執(zhí)行完上面的操作后,你就可以在自己的Photoshop里運行自己新建的擴展了。

          同時,如果你想調試自己的擴展,可以在目錄指定位置中添加.debug文件:

          .debug文件中,我們指定開發(fā)的應用可以在哪個宿主應用和哪個端口進行調試:

          <ExtensionList>
              <!-- 1 -->
              <Extension Id="com.example.helloworld">
                 <HostList>
          
          
                     <!-- 2 -->
                     <Host Name="PHXS" Port="8088"/>
                     <Host Name="PHSP" Port="8088"/>
          
          
                  </HostList>
              </Extension>
          </ExtensionList>

          然后,我們訪問在chrome瀏覽器中訪問chrome://inspect/#devices,點擊「Port forwarding...」監(jiān)聽我們在.debug中設置的端口,我們可以看到的自己的應用:

          熟悉移動端調試的讀者一定對這個界面不陌生,我們找到自己的應用并點開「inspect」,就可以在指定端口通過chrome的開發(fā)者工具來同步調試運行的CEP擴展了。

          開發(fā)「獲取/刪除所有文字圖層」的Ps插件

          我們從前文提到的「CEP應用結構的五個層級」自下向上來構建:

          1. 首先,在Extendscript層,我們先在全局定義好「獲取所有文字圖層」和「刪除所有文字圖層」的功能函數(shù):

          function getAllLayers() {
            var out=[];
            var doc=app.activeDocument;
            getLayers(doc.layers);
            function getLayers(layers) {
              for (var i=0; i < layers.length; i++) {
                if (layers[i].typename=="LayerSet") {
                  //判斷是否是圖層組
                  out.push(layers[i].name);
                  getLayers(layers[i].layers);
                } else {
                  out.push(layers[i].name);
                }
              }
            }
            return JSON.stringify(out);
          }
          
          
          function hideAllTextLayers() {
            var doc=app.activeDocument;
            var out=[];
            function getLayers(layers) {
              for (var i=0; i < layers.length; i++) {
                if (layers[i] && layers[i].kind===LayerKind.TEXT) {
                  out.push(layers[i]);
                }
                if (layers[i].typename=="LayerSet") {
                  getLayers(layers[i].layers);
                }
              }
            }
            getLayers(doc.layers);
            for (var j=0; j < out.length; j++) {
              out[j].remove();
            }
            return "{}";
          }


          • app作為Extendscript中的全局對象,有著獲取原生宿主程序各種功能的api,我們可以通過app.activeDocument.layers來獲取或者操作圖層
          • 同時,我們通過返回字符串類型的結果,讓CEP的JavaScript端得以獲取

          由于在Extendscript環(huán)境下,JavaScript僅兼容ES3,而且ExtendScript和CEP JavaScript之間只能通過字符串進行通信,所以我們要在ExtendScript的環(huán)境下引入JSON3[5]作為JSON功能的polyfill(注意這和CEP的JavaScript無關)

          2. 在CEP的JavaScript層,我們在utils/cs.js中使用Promise封裝好界面上用得到的的hideLayersgetLayers函數(shù)——調用Extendscript中已經(jīng)定義好在全局的方法,并處理返回的字符串:

          const cs=new CSInterface();
          
          
          var c=cs.getSystemPath(SystemPath.EXTENSION) + "/jsx/";
          cs.evalScript(`$.evalFile("${c}json3.jsx")`);
          
          
          const evalJSXScript=(script)=>
            new Promise((resolve)=> {
              cs.evalScript(script, (res)=> {
                resolve(JSON.parse(res));
              });
            });
          
          
          export const getLayers=()=> evalJSXScript("getAllLayers()");
          export const hideLayers=()=> evalJSXScript("hideAllTextLayers()");


          3. 在CEP的UI層(為了更直觀,這里我們用引入react來代替html展示UI),我們大致部署一下插件的界面,用兩個按鈕分別觸發(fā)「獲取所有文字圖層」和「刪除所有文字圖層」的功能。同時為了直觀一些,我們把獲取到的所有文字圖層在插件面板上顯示:


          import React, { useState } from "react";
          import { hideLayers, getLayers } from "./utils/cs";
          import "./styles/main.css";
          
          
          export default ()=> {
            const [layers, setLayers]=useState(null);
            const handleGetLayers=async ()=> {
              const layers=await getLayers();
              setLayers(layers);
            };
            return (
              <div style={{ width: "100vw", height: "100vh", background: "#FFF" }}>
                <button className="primary" onClick={handleGetLayers}>
                  點擊獲取圖層
                </button>
                <button className="primary" onClick={hideLayers}>
                  點擊刪除全部文字圖層
                </button>
                <div className="area">
                  {layers && layers.length
                    ? layers.map((e, i)=> (
                        <div key={i} className="layer">
                          {e}
                        </div>
                      ))
                    : "無"}
                </div>
              </div>
            );
          };


          1. 在CEF層,我們根據(jù)上一小節(jié)「項目構建」的步驟,配置好manifest.xml和整個項目的目錄結構,打開debug模式,并將整個CEP擴展應用的目錄放到相應的路徑下;
          2. 在界面層,我們在Photoshop中隨便打開一個包含文字圖層的psd文件,然后在「窗口」-「擴展」里面打開我們剛開發(fā)好的擴展,就可以成功運行了。

          讓我們試試剛剛開發(fā)的功能,例如,當我們點擊「點擊獲取圖層」的按鈕時,得到了如下的結果:

          然后我們點擊右側「刪除所有文字圖層」后,是不是可以發(fā)現(xiàn)打開的psd文件中的文字圖層都消失了呢?

          我把實例的項目放在了Lumpychen/CEP-Test[6],大家有興趣可以自己嘗試。

          簽名與發(fā)布

          現(xiàn)在我們的應用可以在記得Photoshop中跑起來了,但是如果想讓自己的擴展可以在設計師同事的Photoshop里運行,我們不能給讓每個用戶都開啟一下debug模式,這太麻煩了。

          在沒有進入debug模式的情況,Adobe CEP 擴展必須有簽名才能正常運行,簽名分為兩種:

          • 商業(yè)簽名證書,可以在數(shù)字簽名提供商中購買
          • 自簽名證書,可以通過Adobe官方的ZXPSignCmd 創(chuàng)建

          具體如何獲取證書、簽名打包,Adobe也提供了官方的教程:package-distribute-install-guide[7]

          同時,Adobe官方也把下載、管理和更新CEP擴展的功能集成到了Creative Cloud里,如果你安裝了Creative Cloud,它會連接Adobe Exchange——Adobe官方推出的擴展市場,以獲取和更新我們安裝的擴展。

          如果你想把你自己開發(fā)的擴展發(fā)布到Adobe Exchange上,Adobe官方也提供了Exchange Portal用來發(fā)布擴展的渠道。

          然而……

          由于Adobe在中國的業(yè)務一直處于被閹割的狀態(tài),且國內(nèi)通過Creative Cloud購買正版Adobe應用的用戶也相對有限,所以大家很少采用官方的渠道管理和獲取Adobe產(chǎn)品的CEP擴展。

          而國內(nèi)的Photoshop擴展應用的生態(tài)依然處于一個略微灰色的狀態(tài),很多擴展的發(fā)布和都依賴第三方社區(qū)(知乎、微信公眾號、淘寶)或素材網(wǎng)站,當然這樣的生態(tài)也催生了我國互聯(lián)網(wǎng)的歷史上一批又一批的ps大神。

          輔助工具

          文章的最后,如果你想要開發(fā)一個Adobe CEP擴展,我這邊強烈推薦幾個輔助用的工具:

          • Script Listener[8]

          Script Listener是Adobe社區(qū)里推出的輔助工具,可以隨時記錄用戶對Adobe宿主程序的操作,然后生成ExtendScript腳本文件在桌面上供用戶查看和選用——使用這種方式生成ExtendScript代碼,可以讓開發(fā)者省去很多學習Extendscript API的成本。

          • JSX.js[9]

          JSX.js是提供給CEP應用的JavaScript環(huán)境一個JS庫,可以代替原生的方法來引入ExtendScript的文件或執(zhí)行Extendscript的代碼,它解決了一個很重要的痛點——提供了執(zhí)行ExtendScript的報錯信息(這比起原生調用ExtendScript代碼執(zhí)行得到一句evalScript error體驗要強上很多倍)

          • ExtendScript Debugger[10]

          這是目前Adobe官方提供的,當前版本唯一用來調試ExtendScript的工具。它是一個VSCode Debugger插件,可以像其它的VScode Debugger一樣,提供相關報錯信息,實現(xiàn)斷點調試的功能。

          擴展閱讀

          1. ADOBE PHOTOSHOP SCRIPTINGhttps://www.adobe.com/devnet/photoshop/scripting.html
          2. Configure-your-extension-in-manifestxmlhttps://github.com/Adobe-CEP/Getting-Started-guides#2-configure-your-extension-in-manifestxml
          3. CSInterface.jshttps://github.com/Adobe-CEP/CEP-Resources/blob/master/CEP_10.x/CSInterface.js
          4. Applications Integrated with CEPhttps://github.com/Adobe-CEP/CEP-Resources/blob/master/CEP_9.x/Documentation/CEP%209.0%20HTML%20Extension%20Cookbook.md#applications-integrated-with-cep
          5. JSON3https://github.com/bestiejs/json3
          6. Lumpychen/CEP-Testhttps://github.com/LumpyChen/CEP-Test
          7. package-distribute-install-guidehttps://github.com/Adobe-CEP/Getting-Started-guides/tree/master/Package%20Distribute%20Install#package-distribute-install-guide
          8. Script Listenerhttps://helpx.adobe.com/photoshop/kb/downloadable-plugins-and-content.html#ScriptingListenerplugin
          9. JSX.jshttps://creative-scripts.com/jsx-js/
          10. ExtendScript Debuggerhttps://marketplace.visualstudio.com/items?itemName=Adobe.extendscript-debug
          11. 《CEP Intro》https://github.com/Adobe-CEP/CEP-Resources
          12. 《nullice的Adobe CEP擴展開發(fā)教程》http://nullice.com/archives/category/note/%E8%BD%AF%E4%BB%B6%E6%95%99%E7%A8%8B/adobe-cep
          13. 《Photoshop Scripting Documentation》https://www.notion.so/a908db4f72a74854b36c10e72a69b751
          14. 《Photoshop-CC-Javascript-Ref-2019》https://wwwimages2.adobe.com/content/dam/acom/en/devnet/photoshop/pdfs/photoshop-cc-javascript-ref-2019.pdf

          家好,我是 Echa。

          今天來分享 50 個超實用的 Chrome 瀏覽器擴展!

          JSON

          1. JSON Viewer Pro

          JSON Viewer Pro 用于可視化JSON文件。其核心功能包括:

          • 支持將JSON數(shù)據(jù)進行格式化,并使用屬性或者圖表進行展示;
          • 使用面包屑深入遍歷 JSON 屬性;
          • 在輸入?yún)^(qū)寫入自定義 JSON;
          • 導入本地 JSON 文件;
          • 使用上下文菜單下載 JSON 文件;
          • 網(wǎng)址過濾器;
          • 改變主題;
          • 自定義 CSS ;
          • 復制屬性和值;

          輸入界面如下:

          格式化之后:

          2. JSONVue

          JSONVue 是一個JSON數(shù)據(jù)查看器,主要用來格式化JSON數(shù)據(jù):

          網(wǎng)站技術

          3. Library Sniffer

          Library Sniffer 是一款給開發(fā)者使用的工具,能夠探測當前網(wǎng)頁所使用的類庫、框架和服務器環(huán)境,為開發(fā)者提供了方便。

          4. Wappalyzer

          Wappalyzer 擴展可以用來識別網(wǎng)站背后的底層技術。通過此擴展,可以了解特定應用程序是否是用 React、Vue、Angular、PHP等編寫的。還可以訪問有關 Web 服務器、編程語言、框架、內(nèi)容管理系統(tǒng)、分析的信息工具、數(shù)據(jù)庫等。

          5. WhatRuns

          WhatRuns 擴展程序只需單擊一下即可找到任何網(wǎng)站上使用的技術。

          開發(fā)調試

          6. PerfectPixel by WellDoneCode

          使用PerfectPixel插件可以將設計圖加載至網(wǎng)頁中,與已成型的網(wǎng)頁進行重疊對比,以幫助開發(fā)和設計人員規(guī)范網(wǎng)頁像素精度。這是一款可以優(yōu)化前端頁面顯示的Chrome插件。

          7. Clear Cache

          可以使用此擴展程序快速清除緩存,無需任何確認對話框、彈出窗口等。可以在選項頁面上自定義要清除的數(shù)據(jù)和數(shù)量,包括:應用程序緩存、緩存、Cookie、下載、文件系統(tǒng)、表單數(shù)據(jù)、歷史記錄、索引數(shù)據(jù)庫、本地存儲、插件數(shù)據(jù)、密碼和 WebSQL。

          8. VisBug

          VisBug 是一個使用 JavaScript 構建的開源網(wǎng)頁設計調試工具,它可以讓用戶使用點擊式和拖放式界面來查看網(wǎng)站的元素。

          9. Debug CSS

          Debug CSS 是一個幫助調試CSS的插件。他可以顯示出頁面元素的輪播,按住Ctrl,并將鼠標懸浮在元素上,即可查看其信息:

          10. CSS Viewer

          CSS Viewer 是一款適用于 Web 開發(fā)人員的高效 Chrome 擴展。顧名思義,CSS 查看器可以顯示將鼠標懸停在任何網(wǎng)頁上的元素的 CSS 屬性。

          11. EditThisCookie

          EditThisCookie 是一個 cookie 管理器。可以添加,刪除,編輯,搜索,鎖定和屏蔽cookies。

          12. React Developer Tools

          React Developer Tools 是開源 JavaScript 庫 React 的 Chrome DevTools 擴展。它允許我們在 Chrome 開發(fā)者工具中檢查 React 組件層次結構。安裝此插件之后,將在 Chrome DevTools 中獲得兩個新選項卡:"?? Components" 和 "?? Profiler":

          • Components 選項卡顯示了在頁面上呈現(xiàn)的根 React 組件,以及它們最終呈現(xiàn)的子組件;
          • Profiler 選項卡用來記錄性能信息。

          13. Vue.js devtools

          Vue.js devtools 是一款基于chrome瀏覽器的用于調試Vue.js應用程序的插件,可以使得開發(fā)人員大大提高調試效率。支持用戶對DOM結構數(shù)據(jù)結構進行解析和調試功能。

          14. Augury

          Augury 可以幫助開發(fā)人員在 Google Chrome 瀏覽器中調試和分析 Angular 應用程序。

          15. Firebug Lite for Google Chrome

          Firebug Lite是火狐瀏覽器中著名的開發(fā)者工具firebug插件移植到Chrome中的插件,在Chrome中安裝了Firebug Lite插件以后,開發(fā)人員可以像在火狐瀏覽器中使用firebug一樣熟悉的方式來調試網(wǎng)頁內(nèi)容,其包含了基本的HTML、CSS以及Javascript的調試功能,用于幫助網(wǎng)頁前端開發(fā)工程師快速地調試網(wǎng)頁,以便及時地找到網(wǎng)頁中的BUG并及時修復。

          16. HTML Validator

          HTML Validator 在 Chrome 的開發(fā)者工具中添加了 HTML Validator。HTML 頁面的錯誤數(shù)通過瀏覽器狀態(tài)欄中的圖標顯示,詳細信息可以在瀏覽器的開發(fā)者工具中查看。

          17. Web Developer

          Web Developer 擴展為帶有各種 Web 開發(fā)工具的瀏覽器添加了一個工具欄按鈕。該擴展適用于 Chrome 和 Firefox,并且可以在這些瀏覽器支持的任何平臺上運行,包括 Windows、macOS 和 Linux。

          18. Requestly

          Requestly 是一款Chrome和Firefox瀏覽器插件,提供URL轉發(fā)、修改HTTP請求和結果、插入腳本等功能。

          19. Window Resizer

          Window Resizer 主要用來調整瀏覽器窗口的大小以模擬各種屏幕分辨率。

          20. Responsive Viewer

          Responsive Viewer 是在一個視圖中顯示多個屏幕的 Chrome 擴展程序。該擴展將幫助前端開發(fā)人員在開發(fā)響應式網(wǎng)站/應用程序時測試多個屏幕。

          21. Moesif Origin & CORS Changer

          此插件允許直接從瀏覽器發(fā)送跨域請求,而不會收到跨域錯誤。可以使用此插件覆蓋 Request Origin 標頭,并將 Access-Control-Allow-Origin 設置為 *.

          22. ColorPick Eyedropper

          ColorPick Eyedropper 是一個放大的吸管和顏色選擇器工具,可讓從網(wǎng)頁等中選擇顏色值。

          23. CSSPeeper

          CSS Peeper 用于檢查和復制元素樣式的優(yōu)秀工具,使用 CSSPeeper 可以將鼠標懸停在網(wǎng)頁中的任何元素上,然后單擊鼠標即可復制元素的樣式。

          24. Dimensions

          Dimensions是一款能幫助使用者對網(wǎng)頁上各種元素屬性之間的距離進行測量的Chrome頁面元素測量插件,該插件在點擊啟動插件圖標后,可以對頁面中圖像、輸入字段、按鈕以及視頻等頁面元素之間上下左右的方位尺寸進行測量,同時還可以通過使用快捷鍵來快速啟用或關閉該插件的功能,簡單實用。

          25. Site Palette

          Site Palette 用于生成調色板。設計師和前端開發(fā)人員必備的工具。可以通過這款插件輕松獲取網(wǎng)站的配色方案。

          26. ColorZilla

          ColorZilla 是一款功能強大地提取網(wǎng)頁色彩的工具;也是個快速的對顏色進行調節(jié)的Chrome插件,許多的用戶將這款軟件稱呼為顏色吸取插件,它提取的顏色是非常的多樣化,還可生產(chǎn)css顏色的代碼等。

          • 吸管器-獲取頁面上任何像素或區(qū)域的顏色;
          • 一個先進的顏色選擇器類似于可以在Photoshop和Paint Shop Pro中找到的;
          • 網(wǎng)頁顏色分析器-分析任何網(wǎng)頁上的DOM元素顏色,找到相應的元素;
          • 終極CSS梯度發(fā)生器;
          • 調色板查看器與7預先安裝調色板;
          • 顏色歷史最近挑選的顏色;
          • 顯示標簽名稱,類別,編號,大小等元素信息;
          • 光標下的輪廓元素;
          • 自動將生成或采樣的顏色復制到CSS RGB,Hex和其他格式的剪貼板;
          • 使用鍵盤快速采樣頁面顏色的鍵盤快捷鍵。

          字體

          27. WhatFont

          當我們想查看網(wǎng)頁中文字的字體時,最常用的方法就是在控制臺查看文字的字體樣式。那還有沒有更簡單的方法呢?WhatFont 就是一個查看網(wǎng)頁字體的Chrome擴展。只需要的點擊擴展圖標,再點需要查看為文字即可:

          28. Fonts Ninja

          Fonts Ninja 可以從任何網(wǎng)站識別字體、添加書簽、試用并購買它們。

          標簽頁

          29. BrowserStack

          使用 BrowserStack 快速啟動擴展在任何瀏覽器中啟動一個新的測試會話。最多可設置 12 個瀏覽器以實現(xiàn)快速訪問并最大限度地減少切換瀏覽器所花費的時間。

          30. Toby

          Toby 是一款 Chrome 新標簽頁工具,能夠將未讀的標簽頁分組顯示在新標簽頁中,這樣就能把所有未看完的標簽頁都關閉了。分組相當于多個 Chrome 窗口,將你的標簽頁都拖進 Toby 中,就不需要實時開著占地方了。

          31. daily.dev

          該擴展提供了每日熱門開發(fā)者新聞,不需要再浪費時間搜索高質量的文章了。

          32. Momentum

          Momentum 擁有漂亮的新標簽頁面,每日更新精彩背景壁紙圖片,可設置每日新鮮事焦點以及跟蹤待辦事項,無廣告,無彈窗。

          33. The Great Suspender

          The Great Suspender 是一個輕量級的擴展用來減少 Chrome 的內(nèi)存占用。如果同時打開許多選項卡,在可配置的時間之后未查看的選項卡將在后臺自動掛起,從而釋放該選項卡消耗的內(nèi)存和 CPU。

          34. Session Buddy

          Session Buddy是一個可以幫助用戶查看、新增、編輯當前網(wǎng)站Session狀態(tài)的Chrome插件。用戶可以利用該插件保存網(wǎng)站當前的狀態(tài)以便在關閉Chrome或關閉計算機后恢復,從而達到節(jié)省內(nèi)存的作用。

          Github

          35. Octotree

          Octotree 旨在讓 GitHub 體驗更好。通常,為了檢查 Github 中的子文件夾,需要手動單擊文件夾并導航。Octotree 擴展解決了這個問題。此擴展在項目的左側顯示存儲庫的目錄結構,這有助于更好地理解文件夾結構。

          1_EKF88oqIyX6FzgueCKdtXg.gif

          36. File Icons for GitHub and GitLab

          File Icons for GitHub and GitLab 可以將 GitHub 和 GitLab 上的原始文件圖標替換為特定文件類型的圖標。

          網(wǎng)頁測試

          37. axe DevTools

          ax DevTools 是一個快速、輕量級但功能強大的測試工具,由 Deque 開發(fā)的世界上最值得信賴的可訪問性測試引擎 axe-core 驅動。使用 ax DevTools 在網(wǎng)站開發(fā)過程中查找并修復更多可訪問性問題。

          38. OctoLinker

          OctoLinker 可以將特定語言的語句(如 include、require 或 import)轉換為鏈接。當打開一個包含多個導入語句的文件并且想要快速打開它時,只需將鼠標懸停在鏈接的文件上并單擊即可打開。

          39. Web Developer Checklist

          此擴展可幫助 Web 開發(fā)人員分析網(wǎng)頁是否違反最佳實踐。

          40. Check My Links

          Check My Links 是一個鏈接檢查器,它可以抓取網(wǎng)頁并查找損壞的鏈接。

          41. Checkbot

          Checkbot 是用于驗證一組HTML頁面上的鏈接的工具。Checkbot可以檢查一個或多個服務器上的單個文檔或一組文檔。它會創(chuàng)建一個報告,該報告匯總了引起某種警告或錯誤的所有鏈接。

          42. PageSpeed Insights

          Google Page Speed Insighs 是一款旨在優(yōu)化所有設備上的網(wǎng)頁、提高網(wǎng)頁加載速度的工具。

          43. Meta SEO Inspector

          META SEO inspector是一款可以幫助用戶分析網(wǎng)頁的meta信息并得到SEO評估的谷歌瀏覽器插件。

          隱私廣告

          44. Ghostery

          Ghostery 是強大的隱私保護擴展程序。其主要有以下功能:

          • 攔截廣告:Ghostery 內(nèi)置的廣告攔截工具可以移除網(wǎng)頁上的廣告,防止網(wǎng)頁雜亂無章,讓你專注于想看的內(nèi)容。
          • 保護隱私:利用 Ghostery 可以查看和攔截所瀏覽的網(wǎng)站上的跟蹤器,控制收集數(shù)據(jù)的跟蹤器。增強反跟蹤功能還能將數(shù)據(jù)匿名化,進一步保護隱私。
          • 提高瀏覽速度:Ghostery 的智能攔截功能可以自動攔截和取消攔截跟蹤器來滿足網(wǎng)頁質量標準,提高網(wǎng)頁加載速度,優(yōu)化網(wǎng)頁性能。

          45. AdBlock

          AdBlock 用來在YouTube、Facebook、Twitch和其他你喜愛的網(wǎng)站上攔截廣告和彈窗。

          效率工具

          46. Marinara

          番茄工作法(Pomodoro?)時間管理助理。? 長短兩種休息時間 ? 帶有倒計時顯示的工具欄圖標 ? 追蹤Pomodoro歷史和統(tǒng)計訊息 ? 可配置的長休間隔 ? 可配置的定時器時長 ? 桌面與新標簽頁通知 ? 超過20種音效可選的聲音通知 ? 計時器秒針走動音效

          47. Loom

          Loom 可以用來快速錄制視頻,并且能夠將錄制的視頻上傳到指定的網(wǎng)頁中,Loom還支持在用戶點擊啟動插件時,立即捕捉屏幕圖像,同時開始視頻錄制操作,還可以將錄制好的視頻復制到粘貼板中存儲。

          48. GoFullPage

          GoFullPage 是一款全屏截圖插件(整個網(wǎng)頁截圖),完整捕獲您當前頁面的屏幕,進行滾動截圖,而無需任何額外的權限。單擊擴展程序圖標,然后將其傳輸?shù)狡聊豢煺盏男聵撕烅撝校梢栽谄渲袑⑵湎螺d為圖像或PDF,甚至只需拖動即可,保存到桌面。

          49. BetterViewer

          BetterViewer 可以提供更好的圖像查看體驗,旨在替代基于 Chrome 瀏覽器中內(nèi)置的圖像查看模式。使用時,只需在頁面右鍵點擊圖片,選擇“在新標簽頁中打開圖片”即可。

          50. svg-grabber

          svg-grabber 是一個快速預覽并從網(wǎng)站獲取所有 svg 的工具。可以用來預覽、下載和復制網(wǎng)站中所有 SVG 圖標和插圖的代碼。

          hotoshop可以說是每個設計師都必須會用的設計工具之一了。為了設計要求,大家會在Photoshop里搭配一些PS插件來使用。這篇文章就為大家整理了22款最佳PS插件,一起來看看吧。

          點擊獲取,ps全套插件合集,一鍵選裝,自動識別ps版本

          1、摹客iDoc PS插件(產(chǎn)品設計協(xié)作神器)

          摹客iDoc是一個更快更簡單的產(chǎn)品協(xié)作設計平臺。摹客iDoc主要用戶人群涵蓋產(chǎn)品經(jīng)理,設計師和工程師,其核心功能點包括:智能標注、一鍵切圖、多樣批注、快速交互、全貌畫板、團隊管理。從產(chǎn)品到開發(fā),真正實現(xiàn)了只要一個文檔,更加高效流暢的協(xié)作方式,降低溝通成本,提升產(chǎn)品效率。摹客iDoc支持PS。通過摹客iDoc PS插件,可以上傳PS設計稿以進行標記切圖等(摹客iDoc PS插件教程)。PS 中的設計稿上傳至iDoc中后,可以進行以下操作:

          • 智能標注。標注智能生成,詳細且精準;有三種標注模式,無選中標注、圖層間標注、多選標注;還可以查看百分比標注;可使用放大鏡,放大標注細節(jié);可一鍵查找頁面中的任何重復元素(如文本、顏色、邊距、寬度等);可通過單位切換面板,切換多種度量單位
          • 一鍵切圖。通過插件在PS中進行切圖并上傳到iDoc中,可一鍵下載
          • 多樣批注。提供了多種批注樣式,方便查看者對設計稿進行評價和回復
          • 快速交互。可以設置頁面跳轉交互,快速制作高保真可交互原型;支持9種轉場特效,設置延時自動跳轉,還可以設定固定滾動區(qū)域;可生成鏈接進行演示,移動端項目支持手機演示
          • 全貌畫板。全貌畫板內(nèi)展示所有設計稿,縮放自如;可設置邏輯線、添加邏輯描述,表達設計稿間的邏輯關系;支持導航漫游,以進行快速定位
          • 團隊管理。項目管理:根據(jù)項目屬性對項目進行分組,每個組有多個項目,還可設置各個項目的參與人員;團隊管理:將團隊成員劃分到不同部門,通過設置 “管理員”、“成員”、“訪客”身份,分配團隊成員不同操作權限

          2、GuideGuide(PS輔助線插件)

          GuideGuide是一款針對photoshop的輔助工具。通過這款軟件,可以輕松的即可完成標準的輔助線,從而讓設計師更輕松地進行作品制作,節(jié)約畫圖的時間。軟件操作比較簡單,只需要將插件載入PS中,即可完成各種輔助線的制作。

          • 可以快速進行分欄、等比間隙
          • 將元素進行快速的對齊
          • 快速選擇網(wǎng)格劃分方式
          • 快速劃分導航
          • 支持對寬度進行計算
          • 可對基準線的網(wǎng)格進行繪制

          3、Lumenzia(PS蒙版擴展插件)

          Lumenzia 是款Photoshop蒙版擴展插件,可以對PS中的圖片進行添加城市風格的濾鏡效果。插件支持對調整亮度、區(qū)域范圍的各種效果,也可以自定義調整區(qū)域、添加顏色等。

          • 混合顏色帶蒙板(保存重要的文件空間, 避免需要更新蒙板)
          • 顏色蒙板(視覺上選擇顏色和/或亮度)
          • 實時蒙板(請立即查看并嘗試不同的蒙板)
          • 區(qū)域和范圍選取器(點擊圖像可視化選擇正確的蒙板)
          • "更亮/更暗" 蒙板(選擇相對于環(huán)繞像素的像素)
          • 組合蒙板(合并組蒙板以節(jié)省空間并準確查看被遮罩的內(nèi)容)

          4、Fluid Mask 3(PS摳圖插件)

          Fluid Mask 3是一款可以幫助處理PS圖像的工具。該插件中的編輯功能非常豐富,支持多種畫筆工具,可以將摳圖的照片加載到編輯區(qū)域,利用不同的畫筆工具對其進行處理,從而優(yōu)化PS圖像;同事還支持邊緣寬度調整、蒙版設計、色調調整、抓取、縮放、拍照等輔助功能。

          • 混合精確畫筆:對精確的區(qū)域涂抹混合蒙版,然后在最后的摳圖中混合
          • 強制邊緣工具:使用強制邊緣工具給圖像添加邊緣;使用羽化調整來控制混合強制邊緣的寬度
          • 清理工具:用于填充較大蒙版區(qū)域的小孔,使其連續(xù)
          • 進度欄功能:完成命令花費的和剩余的時間指示

          5、Long Shadow Generator(PS長投影插件)

          Long Shadow Generator是一個Photoshop長投影插件。長投影效果在網(wǎng)頁設計、UI元素與圖標等設計上的應用很常見。這款 長投影插件除了支持4個方向的長投影,還支持設置投影長度等。

          • 陰影長度
          • 不透明陰影
          • 黑色或白色的影子
          • 展平或gradiant陰影

          具體請看功能展示視頻:如何使用Long Shadow Generator

          6、CSS3Ps(PS圖層轉換插件)

          CSS3Ps是一款PS圖層轉換軟件,可以將圖層轉換為能在瀏覽器中查看的CSS3代碼,方便直接在設計軟件中添加相關的設計程序。其操作過程很簡單,通過鼠標簡單的操作就能完成轉換任務。轉換的時候,可以選擇單個或多個圖層,并通過點擊轉換實現(xiàn)批量處理功能。

          • 文本層:可以設置文字內(nèi)容的圖層轉換
          • 多層選擇:可以將一個圖層獨立轉換,也可以設置多個圖層批量轉換
          • 供應商前綴:可以修改文件的前綴名稱,設置代碼保存的地址
          • 尺寸設置:在轉換的時候,可以選擇圖層的大小尺寸
          • 圖層陰影:支持將圖層中的陰影部分轉換
          • 外發(fā)光:能夠處理圖層光效,優(yōu)化您的轉換效果

          7、Ink(PS圖層詳細信息生成插件)

          Ink是一款幫助顯示Photoshop圖層詳細信息的擴展插件。通過這款插件可以快速生成指定圖層的詳細信息,例如圖層的信息、大小、顏色等,從而為前端提供圖層信息。有了這款插件,設計師可以輕松輸出規(guī)范文檔,這樣就不會因缺乏規(guī)范而導致不準確的前端輸出。

          • 可以記錄每個圖層對應在圖形的相關信息,如:顏色、形狀、尺寸、漸變、陰影等等

          具體請看使用教程:如何使用Ink

          8、CSS Hat(PS圖層轉換CSS樣式插件)

          CSS Hat 是一款 PhotoShop 插件,能夠把PSD效果圖層自動轉化為轉換成CSS樣式代碼。此插件對于 Web 設計開發(fā)相關工作者相當有幫助,生成的 CSS 樣式可以直接使用,可節(jié)省大量的時間。

          • 一鍵查看圖層樣式
          • 輕松使用字體、段落樣式
          • 一鍵轉換Less/Sass/Stylus等語言


          標注、切圖、交互、原型,2019年必備神器![color=rgb(255, 255, 255) !important]立即體驗iDoc

          具體請看功能展示視頻:如何使用CSS Hat

          點擊獲取,ps全套插件合集,一鍵選裝,自動識別ps版本

          大家多多評論,提高推薦,閱讀超過5000,小編將分享更給力的資源,或者大家有什么需求可以在評論區(qū)留言!

          如果對你有用給小編一個好評吧,你的好評是小編堅持的動力哦,么么噠!


          其他資源

          • 私信“c4d安裝”,自動獲取c4d安裝包和圖文教程
          • 私信“ps資源合集”,自動獲取ps持續(xù)更新資源(插件,素材,畫筆等等)

          1、素材文件來源于互聯(lián)網(wǎng),素材版權歸原作者所有

          2、素材僅供個人學習研究,不得任何形式商用。如需商用,請聯(lián)系原創(chuàng)作者購買版權,

          否則帶來版權法律問題,請自行負責


          主站蜘蛛池模板: 欧美成人aaa片一区国产精品 | 伊人久久精品一区二区三区| 亚洲一区二区三区电影| 无码少妇丰满熟妇一区二区| 国产日韩一区二区三免费高清| 亚洲福利一区二区| 精品一区二区三区在线观看| 亚洲国产精品无码第一区二区三区 | 国产高清在线精品一区二区 | 国产情侣一区二区| 日韩免费视频一区二区| 一区二区三区视频在线播放| 亚洲AV噜噜一区二区三区 | 亚洲国产一区视频| 日韩伦理一区二区| 国产精品久久久久一区二区三区| 久久精品一区二区影院| 天堂不卡一区二区视频在线观看| 日日摸夜夜添一区| 日产亚洲一区二区三区| 九九久久99综合一区二区| 视频一区二区中文字幕| 日本一道一区二区免费看| 亚洲AV成人一区二区三区在线看| 亚洲一区二区三区国产精品| 成人午夜视频精品一区| 精品一区二区三区自拍图片区| 国产在线一区二区三区av| 国产精品久久久久久一区二区三区 | 日本激情一区二区三区| 久草新视频一区二区三区| 国产一区二区三区免费观看在线| 国产精品亚洲一区二区三区久久| 国产一区二区三区乱码网站| 国产精品高清一区二区人妖| 男女久久久国产一区二区三区| 国产在线精品一区二区在线观看 | 国产一区二区三区不卡在线看| 亚洲欧美日韩中文字幕一区二区三区 | 日韩社区一区二区三区| 免费在线视频一区|