透過網頁讀取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,994 Responses

  1. GichardPheve表示:

    Do you have a spam problem on this website; I also am a blogger, and I was curious about your situation; we have developed some nice methods and we are looking to exchange strategies with other folks, why not shoot me an email if interested.
    https://millionigrushek.ru/

  2. FrankEmine表示:

    yeni deneme bonusu veren siteler: deneme bonusu veren yeni siteler – yat?r?ms?z deneme bonusu veren siteler

  3. Stuart Foglia表示:

    Bookmarking this! The practical advice is something I’ll definitely be coming back to.

  4. Wallacefex表示:

    guvenilir slot siteleri: slot casino siteleri – en kazancl? slot oyunlar?

  5. FrankEmine表示:

    guvenilir slot siteleri: slot oyunlar? puf noktalar? – slot oyunlar?

  6. DavidFeach表示:

    pronet giriЕџ https://sweetbonanza25.com/# sweet bonanza guncel
    casino malta

  7. OLaneevige表示:

    Hi there, its pleasant piece of writing regarding media print, we all know media is a impressive source of facts.
    https://millionigrushek.ru/

  8. Ismaelfer表示:

    Hello there, You’ve done an excellent job. I will definitely digg it and personally suggest to my friends. I’m confident they’ll be benefited from this site.
    https://millionigrushek.ru/

  9. Ismaelfer表示:

    Howdy I am so glad I found your blog page, I really found you by accident, while I was looking on Aol for something else, Anyhow I am here now and would just like to say thank you for a tremendous post and a all round thrilling blog (I also love the theme/design), I don’t have time to read it all at the minute but I have book-marked it and also added in your RSS feeds, so when I have time I will be back to read more, Please do keep up the excellent jo.
    https://millionigrushek.ru/

  10. GichardPheve表示:

    Just wish to say your article is as astounding. The clearness on your publish is just nice and i can assume you are an expert on this subject. Well along with your permission allow me to grab your feed to stay up to date with approaching post. Thank you one million and please carry on the gratifying work.
    https://millionigrushek.ru/

  11. DichaelDax表示:

    Hi! This is my first comment here so I just wanted to give a quick shout out and tell you I truly enjoy reading your posts. Can you suggest any other blogs/websites/forums that cover the same subjects? Thank you!
    https://millionigrushek.ru/

  12. JasonUnsoG表示:

    http://slotsiteleri25.com/# slot siteleri

  13. Wallacefex表示:

    slot oyunlar?: az parayla cok kazandiran slot oyunlar? – slot casino siteleri

  14. Shaneevige表示:

    I enjoy, lead to I found exactly what I was taking a look for. You’ve ended my four day long hunt! God Bless you man. Have a nice day. Bye
    https://millionigrushek.ru/

  15. Wallacefex表示:

    deneme bonusu veren siteler: yat?r?ms?z deneme bonusu veren siteler – deneme bonusu veren siteler yeni

  16. Chuck Imoto表示:

    The grace and authority you handle topics with are as mesmerizing as a moonlit dance. I’m thoroughly impressed.

  17. BradleyEdino表示:

    slot oyunlar? slot oyunlar? guvenilir slot siteleri

  18. Shaneevige表示:

    I’m gone to tell my little brother, that he should also visit this website on regular basis to get updated from hottest news update.
    https://millionigrushek.ru/

  19. The insights have added a lot of value to my understanding. Thanks for sharing.

  20. BradleyEdino表示:

    en kazancl? slot oyunlar? slot casino siteleri slot siteleri

  21. FrankEmine表示:

    deneme bonusu veren siteler: denemebonusuverensiteler25 – deneme bonusu veren siteler

  22. BradleyEdino表示:

    sweet bonanza oyna sweet bonanza demo oyna sweet bonanza slot

發佈留言

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