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

34,052 Responses

  1. вывод из запоя на дому в сочи [url=http://vyvod-iz-zapoya-sochi23.ru]вывод из запоя на дому в сочи[/url] .

  2. как сделать загранпаспорт быстро [url=https://zagranpasport-srochno11.ru]как сделать загранпаспорт быстро[/url] .

  3. рейтинги производительности процессоров рейтинги производительности процессоров .

  4. HermanOvasp表示:

    топаз оранжевый https://ambertopaz.ru/

  5. вывод из запоя круглосуточно сочи вывод из запоя круглосуточно сочи .

  6. срочное получение загранпаспорта срочное получение загранпаспорта .

  7. рейтинг игровых процессоров https://topcpu.ru/ .

  8. JasonUnsoG表示:

    https://slotsiteleri25.com/# slot oyunlar? puf noktalar?

  9. рейтинг процессоров для игр https://www.topcpu.ru .

  10. PatrickTwevy表示:

    обмен биткойнов – bestchange ru обменник, как купить бтк

  11. BradleyEdino表示:

    sweet bonanza demo oyna sweet bonanza yorumlar sweet bonanza oyna

  12. BradleyEdino表示:

    guvenilir slot siteleri guvenilir slot siteleri slot casino siteleri

  13. Wallacefex表示:

    Deneme Bonusu Veren Siteler: Canl? Casino Siteleri – guvenilir casino siteleri

  14. рейтинги производительности процессоров рейтинги производительности процессоров .

  15. Wallacefex表示:

    sweet bonanza guncel: sweet bonanza yorumlar – sweet bonanza guncel

  16. рейтинг процессоров amd http://www.topcpu.ru .

  17. BradleyEdino表示:

    yeni deneme bonusu veren siteler yeni deneme bonusu veren siteler deneme bonusu veren siteler yeni

  18. Wallacefex表示:

    sweet bonanza slot: sweet bonanza guncel – sweet bonanza demo oyna

  19. JasonUnsoG表示:

    http://casinositeleri25.com/# guvenilir casino siteleri

  20. Wallacefex表示:

    deneme bonusu veren casino siteleri: Casino Siteleri – deneme bonusu veren casino siteleri

  21. FarukhRig表示:

    Betzula Twitter, casino oyunlar? konusunda benzersiz secenekler sunar. Fenerbahce Galatasaray derbisi icin Betzula giris yaparak yuksek oranlar? kesfedebilirsiniz.

    Betzula’n?n guvenilir altyap?s?, profesyonel hizmet garantisi verir. Bet Zula sosyal medya hesaplar?yla en son haberlerden haberdar olabilirsiniz.

    Turkiye Super Lig derbilerinin heyecan?n? Betzula ile yasayabilirsiniz.

    Ayr?ca, bet zula giris linki, kullan?c?lara s?n?rs?z erisim sunar. Ozel olarak, https://magazintime.net/ – betzula twitter, profesyonel bir deneyim saglar.

    Betzula, en genis bahis seceneklerinden ozel turnuvalara kadar tum kullan?c?lar?n ihtiyaclar?n? kars?lar. en guncel oranlar? gormek icin Betzula ile kazanmaya baslay?n!
    371212+

  22. RichardHot表示:

    Altcoin обменник – Альткоин сс обменник, Альт коин обменник

  23. Thomasnit表示:

    [url=https://fermacc.org/]обмен биткойнов[/url] – купить usdt за рубли, вывод btc на рубли

  24. Thomasnit表示:

    купить эфир – обменять доге, купить эфир

  25. рейтинг процессоров amd http://topcpu.ru/ .

發佈留言

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