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

13,217 Responses

  1. Pxyywa表示:

    buy cialis 40mg pill – tamsulosin medication purchase tamsulosin online cheap

  2. MichealFlips表示:

    ed pills online erectile dysfunction pills

  3. Aisglg表示:

    cialis usa – buy flomax pills flomax generic

  4. GeorgeDrolo表示:

    https://gabapentin.icu/# purchase neurontin canada

  5. IsiahSoith表示:

    gabapentin 300 how much is generic neurontin

  6. IsiahSoith表示:

    cipro buy cipro online

  7. I love your blog.. very nice colors & theme. Did you create this website yourself or did you hire someone to do it for you? Plz answer back as I’m looking to create my own blog and would like to know where u got this from. thank you

  8. Jefferyjaf表示:

    neurontin 300 mg buy neurontin buy from canada

  9. Ofcixf表示:

    tadalafil 10mg us – cialis 5mg canada order tamsulosin

  10. Jefferyjaf表示:

    prescription drugs online without doctor canadian drugstore online

  11. GeorgeDrolo表示:

    https://diflucan.icu/# can you diflucan over the counter

  12. GeorgeDrolo表示:

    https://withoutprescription.store/# how to get prescription drugs without doctor

  13. Wsafam表示:

    order generic levofloxacin 500mg – order levofloxacin 500mg online cialis 10mg cheap

  14. Robertcoast表示:

    https://withoutprescription.store/# pain meds without written prescription

  15. Katinepisn表示:

    jackpotjoy slots
    free penny slots no download
    best gambling slots

  16. Mwqnjz表示:

    buy levaquin for sale – cialis 5mg tablet cialis for men

  17. IsiahSoith表示:

    ed remedies pills for erection

  18. Cool Designs表示:

    Oh my goodness! an amazing article. Great work.

  19. Robertcoast表示:

    https://cipro.best/# ciprofloxacin 500mg buy online

  20. Robertcoast表示:

    https://diflucan.icu/# buy diflucan without a prescription

  21. IsiahSoith表示:

    buy cipro online canada where can i buy cipro online

  1. 2022-07-02

    1shipping

發佈留言

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