透過網頁讀取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...

32,012 Responses

  1. Diplomi_oekl表示:

    купить аттестат школы за 11 класс russa-diploms.ru .

  2. Chesterunfon表示:

    Cryptoboss

  3. The insights add so much value to the conversation. I always learn something new from you.

  4. автоматические карнизы для штор интернет магазин автоматические карнизы для штор интернет магазин .

  5. RichardTum表示:

    Буй

  6. стоимость электрокарнизов http://www.elektrokarniz-dlya-shtor11.ru .

  7. Trenttat表示:

    https://paxlovid1st.shop/# paxlovid covid
    online canadian drugstore

  8. ЖК Космо ЖК Теплые кварталы ЖК АСТРО все это строит неблагонадежный
    застройщик Паритет Девелопмент. Он экономит на всем, строит некачественное жилье, отдел продаж нагло врет при продажах квартир. В городе Тюмени есть много порядочных застройщиков, а этот я бы никому не рекомендовал. @dontcheatpeople – телеграмм.

  9. Travismut表示:

    plavix medication: plavix price – generic plavix

  10. EarnestAvada表示:

    Pretty! This has been an extremely wonderful article. Thanks for supplying this information.
    вход банзай бет

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

  12. Diplomi_wgkl表示:

    купить диплом одесса russa-diploms.ru .

  13. Arthurfrunc表示:

    http://stromectol1st.shop/# Buy Online Ivermectin/Stromectol Now
    п»їlegitimate online pharmacies india

  14. Richardevics表示:

    paxlovid pharmacy buy here paxlovid generic

  15. Trenttat表示:

    https://clopidogrel.pro/# buy clopidogrel online
    ways to treat erectile dysfunction

  16. карнизы для штор потолочные автоматические карнизы для штор потолочные автоматические .

  17. Arthurfrunc表示:

    https://stromectol1st.shop/# ivermectin for humans
    indian pharmacy online

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

  19. Charleszed表示:

    paxlovid buy: buy here – paxlovid india

發佈留言

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