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

31,543 Responses

  1. Michaelgax表示:

    ivermectin for sale ivermectin 500ml stromectol 6 mg dosage

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

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

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

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

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

  6. работа в алматы с ежедневной оплатой для мужчин работа в алматы с ежедневной оплатой для мужчин .

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

  8. ThomasWhili表示:

    מידי, לא צריך להתאמץ ולא צריך לרדוף אחר אף בחורה. נערות ליווי בקריות פשוט משתוקקות לבלות איתך. כאשר מבלים עם נערות דיסקרטיות. ממוזגות ונוחות. ובהן בחורות פניו חיוך גדול של הנאה. לפחות זה מה שקורה כאשר גברים שכבר ניסו נזכרים באותם רגעים קסומים. אתה כבר i thought about this

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

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

  11. Сервисный центр предлагает мастер по ремонту парогенератора shark ремонт парогенератора shark недорого

  12. работа в астане срочно sitsen.kz .

  13. магазин сейфов предлагает купить сейф 3 класс купить сейф 3 класс

  14. ежедневная оплата в астане: свежие вакансии ежедневная оплата в астане: свежие вакансии .

  15. Stevenjaw表示:

    https://gabapentin.auction/# neurontin 4 mg
    zithromax 1000 mg pills

  16. Matthewweind表示:

    buy zithromax online: generic zithromax – zithromax cost uk

  17. ищу работу в алматы срочно ищу работу в алматы срочно .

  18. Michaelgax表示:

    ivermectin coronavirus order stromectol price of ivermectin

  19. магазин сейфов предлагает сейф 3 класса взломостойкости сейф 3 класса цена

  20. магазин сейфов предлагает сейф 3 класса взломостойкости купить сейф 3

  21. Matthewweind表示:

    Buy semaglutide pills: semaglutide – rybelsus

  22. работа для девушек в алматы с ежедневной оплатой работа для девушек в алматы с ежедневной оплатой .

  23. NicolasLoole表示:

    https://semaglutide.win/# Rybelsus 14 mg

  24. NicolasLoole表示:

    http://stromectol.agency/# minocycline acne worse before better

  25. SamuelCic表示:

    http://gabapentin.auction/# brand name neurontin

發佈留言

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