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

  1. Тут делают продвижение разработка медицинских сайтов создание сайта для клиники

  2. Gabrielwaimb表示:

    пинап кз https://pinupaz.bid/# pin up casino
    пин ап казино вход

  3. Тут делают продвижение разработка сайт медицинской клиники создать сайт медицинского центра

  4. RobertViole表示:

    индивидуалки санкт https://kykli.com/

  5. Тут делают продвижение seo-продвижение медицинских сайтов сео медицина

  6. Тут делают продвижение seo продвижение медицинских сайтов продвижение клиники

  7. Robertdef表示:

    pin-up casino giris pin up az pin-up casino giris

  8. ForrestVal表示:

    пинап казино: пин ап казино – пин ап 634

  9. Armandoknot表示:

    Веселые анекдоты.

  10. DonaldRer表示:

    pin up казино: pin up казино – пинап кз

  11. Luckyjetraketa表示:

    скачать Lucky Jet на андроид бесплатно https://raketa-igra.fun/

  12. LeroyAcuff表示:

    Профессиональный сервисный центр сервисный центр по ремонту телефонов сервис смартфонов

  13. DonaldRer表示:

    пин ап: пин ап кз – пин ап казино онлайн

  14. Also visit my blog post – play poker Online

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

  16. Тут делают продвижение разработка медицинского сайта разработка сайта медицинской клиники

  17. Тут делают продвижение создание сайта под ключ для медицинского учреждения разработка медицинских сайтов

  18. Тут делают продвижение продвижение сайта медицинского центра создание сайта под ключ для медицинского учреждения

  19. ForrestVal表示:

    pin up aviator: pin-up bonanza – pin up casino giris

  20. Тут делают продвижение комплексное продвижение медицинских сайтов комплексное продвижение медицинских сайтов

  21. LeroyAcuff表示:

    Профессиональный сервисный центр центр ремонта телефонов ремонт телефона рядом

  22. Тут делают продвижение медицинский seo seo медицинских сайтов

發佈留言

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