透過網頁讀取Photoshop PSD檔案內容

在專案中有需要透過網頁來讀取Photoshop PSD檔案的內部資訊,我們透過PSD.js備用載點)來實現這樣的功能,在官方提供的功能展示頁中,我們可以看到在頁面中只需引入psd.min.js後,加入透過少量的Javascript就可以針對PSD進行解析。

<!DOCTYPE html>
<html>
<head>
  <title>psd.js image example</title>
  <style type="text/css">
  body, html {
    padding: 0;
    margin: 0;
  }
  #dropzone {
    width: 500px;
    height: 100px;
    border: 1px #ababab dashed;
    margin: 50px auto;
  }
  #dropzone p {
    text-align: center;
    line-height: 100px;
    margin: 0;
    padding: 0;
  }
  #image {
    text-align: center;
  }
  </style>
  <script type="text/javascript" src="psd.min.js"></script>
</head>
<body>
  <div id="dropzone">
    <p>Drop here</p>
  </div>
  <div id="image"></div>
  <pre id="data"></pre>
  <script type="text/javascript">
  (function () {
    var PSD = require('psd');
    document.getElementById('dropzone').addEventListener('dragover', onDragOver, true);
    document.getElementById('dropzone').addEventListener('drop', onDrop, true);
    function onDragOver(e) {
      e.stopPropagation();
      e.preventDefault();
      e.dataTransfer.dropEffect = 'copy';
    }
    function onDrop(e) {
      e.stopPropagation();
      e.preventDefault();
      PSD.fromEvent(e).then(function (psd) {
        var data = JSON.stringify(psd.tree().export(), undefined, 2);
        document.getElementById('data').innerHTML = data;
        document.getElementById('image').appendChild(psd.image.toPng());
      });
    }
  }());
  </script>
</body>
</html>

我們透過下圖這樣的一個PSD檔案對頁面進行測試,檔案中共有三個圖層,包含一個文字圖層。

頁面將PSD分析出結果後,以json格式顯示在頁面上,可以看到文字圖層的部分,不僅能讀到圖層名稱也包含文字內容和字型名稱。

{
  "children": [
    {
      "type": "layer",
      "visible": true,
      "opacity": 1,
      "blendingMode": "normal",
      "name": "Photoshop Text",
      "left": 302,
      "right": 723,
      "top": 90,
      "bottom": 128,
      "height": 38,
      "width": 421,
      "mask": {},
      "text": {
        "value": "THIS IS TEXT LAYER",
        "font": {
          "name": "MyriadPro-Regular\u0000",
          "sizes": [
            53
          ],
          "colors": [
            [
              0,
              0,
              0,
              255
            ]
          ],
          "alignment": [
            "center"
          ]
        },
        "left": 0,
        "top": 0,
        "right": 0,
        "bottom": 0,
        "transform": {
          "xx": 1,
          "xy": 0,
          "yx": 0,
          "yy": 1,
          "tx": 513,
          "ty": 127
        }
      },
      "image": {}
    },
    {
      "type": "layer",
      "visible": true,
      "opacity": 1,
      "blendingMode": "normal",
      "name": "PSD Icon",
      "left": 287,
      "right": 738,
      "top": 209,
      "bottom": 669,
      "height": 460,
      "width": 451,
      "mask": {},
      "image": {}
    },
    {
      "type": "layer",
      "visible": true,
      "opacity": 1,
      "blendingMode": "normal",
      "name": "Background",
      "left": 0,
      "right": 1024,
      "top": 0,
      "bottom": 800,
      "height": 800,
      "width": 1024,
      "mask": {},
      "image": {}
    }
  ],
  "document": {
    "width": 1024,
    "height": 800,
    "resources": {
      "layerComps": [],
      "guides": [],
      "slices": []
    }
  }
}

You may also like...

29,209 Responses

  1. PatrikNom表示:

    Что такое анекдот? Почему мы любим прикольные анекдоты? История. Читайте об этом
    статью

  2. PokerTube表示:

    Feel free to visit my web site – PokerTube

  3. Lewisslund表示:

    Whats up are using WordPress for your blog platform? I’m new to the blog world but I’m trying to get started and create my own. Do you require any html coding expertise to make your own blog? Any help would be greatly appreciated!

    https://ethstaking.losblogos.com/29302833/eth-stake-calculator-insights

  4. Kolyaska_noml表示:

    Люлька для новорожденных: современные технологии для комфорта
    коляска люлька для новорожденных недорого коляска люлька для новорожденных недорого .

  5. Richardral表示:

    acquistare farmaci senza ricetta Farmacie online sicure farmacie online affidabili

  6. replica bags online xt970,http://www.fakebagstore.me,luxury tastic dy425

  7. PatrikNom表示:

    Что такое анекдот? Почему мы любим прикольные анекдоты? Как они появились? Читайте об этом
    статью

  8. Где найти надежные строительные материалы
    строительные материалы интернет магазин строительные материалы интернет магазин .

  9. Kolyaska_xnml表示:

    Идеальная коляска-люлька для новорожденных: секреты выбора
    купить люльку для новорожденного купить люльку для новорожденного .

  10. Если вы искали где отремонтировать сломаную технику, обратите внимание – профи тех сервис уфа

  11. Qetvny表示:

    cefdinir pills – buy cheap clindamycin

  12. Edgarappow表示:

    farmacia online senza ricetta: Farmacia online piu conveniente – farmacie online autorizzate elenco

  13. MichaelToP表示:

    migliori farmacie online 2024 Farmacie on line spedizione gratuita farmacia online

  14. Kennethtub表示:

    http://tadalafilit.com/# comprare farmaci online con ricetta
    farmacie online affidabili

  15. Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
    Мы предлагаем: сервис центры бытовой техники красноярск
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  16. JamesMow表示:

    linktree competitor https://linktree-alternative.com/

  17. Если вы искали где отремонтировать сломаную технику, обратите внимание – техпрофи

  18. Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
    Мы предлагаем: сервисные центры в красноярске
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  19. PatrickLef表示:

    Farmacia online piГ№ conveniente: Farmacia online piu conveniente – comprare farmaci online all’estero

  20. Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
    Мы предлагаем:сервисные центры по ремонту техники в ростове на дону
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  21. Scottdycle表示:

    дезинфекция квартиры после смерти цена https://dezinfekciya-ot-smerti-msk.ru/

  22. Отличный сайт! Всем рекомендую!Тут Вы можете заказатьВинтовые сваи спб

  23. PatrickLef表示:

    viagra naturale in farmacia senza ricetta: viagra online siti sicuri – esiste il viagra generico in farmacia

  24. Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
    Мы предлагаем:ремонт бытовой техники в ростове на дону
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。