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

41,687 Responses

  1. Matthewweind表示:

    ivermectin cost australia: cheapest stromectol – buy minocycline 100mg tablets

  2. вывод из запоя наркологом vyvod-iz-zapoya-ekaterinburg14.ru .

  3. Michaelgax表示:

    ivermectin 12 stromectol best price stromectol ebay

  4. вывод из запоя на дому краснодар цены вывод из запоя на дому краснодар цены .

  5. Stevenjaw表示:

    http://zithromax.company/# generic zithromax online paypal
    buy zithromax online fast shipping

  6. gruzpoputno表示:

    Надежные попутные грузы для междугородних перевозок из Новосибирска https://vk.com/gruz_poputno

  7. Matthewweind表示:

    amoxicillin 500mg tablets price in india: where can i buy amoxicillin online – amoxicillin 500 mg without a prescription

  8. SamuelCic表示:

    https://zithromax.company/# purchase zithromax z-pak

  9. Ремонт телефонов表示:

    Профессиональный сервисный центр сервисный центр ремонт телефонов ближайшая мастерская по ремонту телефонов

  10. вывод из запоя на дому в краснодаре вывод из запоя на дому в краснодаре .

  11. Michaelgax表示:

    rybelsus cost Semaglutide pharmacy price rybelsus generic

  12. Ремонт телефонов表示:

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

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

  14. Stevenjaw表示:

    https://amoxil.llc/# amoxicillin generic
    where can i buy zithromax uk

  15. Michaelgax表示:

    zithromax 250 price order zithromax zithromax cost

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

  17. Matthewweind表示:

    zithromax over the counter uk: order zithromax – average cost of generic zithromax

  18. Stevenjaw表示:

    https://amoxil.llc/# amoxicillin 200 mg tablet
    zithromax 1000 mg online

  19. Matthewweind表示:

    neurontin 30 mg: buy gabapentin – gabapentin 100mg

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

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

發佈回覆給「создание медицинского сайта под ключ」的留言 取消回覆

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