透過網頁讀取PSD後,依圖層輸出PNG檔案

在前面介紹過網頁可以讀取PSD檔案並擷取到該檔案的資訊,接著我們會希望能透過網頁上傳PSD檔之後,依照圖層來輸出圖片,同樣是利用PSD.js來輔助進行,可以透過我們製作的範例頁面來進行輸出測試。

預設輸出效果


透過PSD.js可將PSD內的各圖層輸出成PNG圖檔,亦可轉成Base 64圖檔格式,惟輸出時每個圖檔的尺寸並不會根據整體PSD檔大小來配置。

圖層配置

Layer 1 (421 x 38)
Layer 2 (490 x 479)
Layer 3 (1024 x 800)

<!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 PSD here</p>
  </div>
  <div id="image"></div>
  <pre id="data"></pre>

  <script type="text/javascript">
  (function () {
    const 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) {
		for (var i = 0; i < psd.layers.length; i ++){
			document.getElementById('image').appendChild(psd.layers[i].image.toPng());
		}
      });
    }
	
  }());
  </script>
</body>
</html>

依照整體PSD配置進行輸出


我們希望讓每個圖片在輸出後能保時相同的尺寸,也就是依照PSD的畫布大小來輸出每一張圖檔,但在原生PSD.js中並不具備這樣的功能,於是我們透過下述的方式來達成:

  1. 擷取PSD資訊並將圖檔轉為Base 64格式
  2. 產生與PSD尺寸大小相同的HTML Canvas
  3. 將產生的Base 64圖檔,依照原始位置放入Canvas中
  4. 將Canvas轉成PNG圖檔
圖層配置
Layer 1 (1024 x 800)
Layer 2 (1024 x 800)
Layer 3 (1024 x 800)

可以參考我們製作的範例頁面

<!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 PSD here</p>
  </div>
  <div id="image"></div>
  <pre id="data"></pre>
  <script type="text/javascript">
  (function () {
    const 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) {
    const PSDWidth = psd.tree().width;
    const PSDHeight = psd.tree().height;
    for (var i = 0; i < psd.layers.length; i ++){
      const img = new Image();
      img.src = psd.layers[i].image.toBase64();
      console.log(psd);
      const layerWidth = psd.layers[i].width;
      const layerHeight = psd.layers[i].height;
      const layerLeft = psd.layers[i].left;
      const layerTop = psd.layers[i].top;
      
      const canvas = document.createElement("canvas");
      canvas.setAttribute('class', "canvas");
      canvas.width = PSDWidth;
      canvas.height = PSDHeight;
      console.log("canvas :", canvas);
      img.onload = function(){
        canvas.getContext("2d").drawImage(img, layerLeft, layerTop, layerWidth, layerHeight);
        document.getElementById('image').appendChild(canvas);
      }
    }
      });
    }
  
  }());
  </script>
</body>
</html>

PSD檔案輸出限制


1. 無法輸出帶有效果的圖片

在PSD中我們可能會針對圖層套用一些效果,例如:陰影、光暈、筆畫…等等,但在輸出後的圖檔將不會帶有這些效果。

圖層設定

解決方法:透過點陣化圖層效果,即可輸出相對應的圖檔。

2. 無法輸出帶有遮色片效果的圖片

圖層設定
Before
After

解決方法:將圖層轉為智慧型物件,即可輸出相對應的圖檔。

3. 無法依圖層混合模式輸出圖片

Layer 1
Layer 2
Layer 3
Layer 4

解決方法:無法解決

You may also like...

61,910 Responses

  1. Anyone from an average, everyday person to エロ 人形someone with a silicone doll fetish can benefit from connecting with a sex doll.

  2. 人形 えろ表示:

    Being worried about what others may think or say can be hugely stressful and えろ 人形that can often mean that others reactions, feelings and opinions take over and become the main focus.

  3. 人形 エロ表示:

    It all started in the late 1990s, エロ 人形when artist Matt McMullen created a female mannequin that was highly lifelike.

  4. In recent times, silicone sex dolls have witnessed a surge人形エロ in popularity within the realm of adult intimacy products.

  5. Different materials require specific cleaning methods. 人形エロFor instance, TPE sex dolls and silicone sex dolls necessitate different cleaning approaches.

  6. 人形 えろ表示:

    has propelled the popularity of silicone love dolls. As an alternative 人形エロto conventional socializing in spaces like nightclubs, individuals are turning to silicone dolls sex for a satisfying substitute

  7. irontech doll表示:

    this could degrade the material of the doll.えろ 人形Apply a little lube to the doll’s mouth and anal orifice, as well as its penis

  8. Correct maintenance methods not only help the wig maintain its original luster and texture but also extend the lifespan of the wig, allowing the beauty of the sex doll to continue to shine.

  9. irontech doll表示:

    immersed in a smartphone rather than another person人形 エロ.

  10. Сервисный центр предлагает ремонт роботов пылесосов red недорого ремонт роботов пылесосов red в москве

  11. Walker表示:

    Hi there everyone, it’s my first pay a quick visit at this site, and post is truly fruitful in support of me, keep
    up posting such articles or reviews.

  12. Petertes表示:

    Магазин Экипировка Эксперт
    Капюшон ФПВ3
    Боец, Экипировка Эксперт — это розничный магазин, сотрудничающий с рядом оптовых складов и производителей. Это значит, что при должном количестве товара мы дадим очень хорошие цены.

    Название взяли независимо от того, что наша страна сейчас проводит Специальную Военную Операцию, хорошая снаряга и экипировка нужна всегда. Готовишься в бой, мобилизован, привык активно проводить время или решил подготовить тревожный чемоданчик, мы поможем тебе. Наши клиенты: фонды, медики, такие же как ты бойцы СВО и обычные неравнодушные граждане.

    Самое главное, что нужно о нас знать, мы детально объясняем, что и как работает, чтобы ты сделал правильный выбор не переплачивая.

    Обращаясь к нам, не удивляйся, если ты получишь честный и жесткий ответ – часто случается так, что мы знаем лучше, что именно нужно нашему гостю. Особенно это касается мобилизованных без опыта боевых действий. Здесь ты можешь полагаться на нашу экспертность.

    Одна из наших основных целей предоставить тебе возможность удобной и безопасной покупки: хоть за наличку, хоть по карте, хоть по счету. Повторимся, если нужна оптовая поставка, согласуем и отгрузим. Именно от того, как ты производишь оплату, зависит цена заказа.

    Для нас важно предоставить тебе качественную экипировку и снаряжение соблюдая при этом законы нашей страны. Боец, помни, мы помогаем фондам, нуждающимся людям, подразделениям в зоне СВО. Отчеты об этом опубликованы как на сайте. На эту деятельность уходит значительная часть выручки. Делая покупки в нашем магазине, ты помогаешь людям и фронту. Уверен, что это найдет отзыв в твоем сердце.

    У нашей команды есть набор ценностей: честность, справедливость, сопереживание, взаимопомощь, мужество, патриотичность. Уверены, ты их разделяешь, и мы легко найдем общий язык. Ну а если что-то пойдет не так, не руби с плеча, объясни, где мы ошиблись и поверь, мы разберемся и исправим. Наш девиз “In hostem omnia licita” – по отношению к врагу дозволено все. Возьми этот девиз, он поможет тебе принять правильное решение в трудной ситуации, с честью выполнить боевую задачу и вернуться домой живым и здоровым!

  13. Сервисный центр предлагает адреса ремонта видеокарт colorful ремонт видеокарт colorful недорого

  14. KeithMup表示:

    7 simple secrets to eating the Mediterranean way
    kra gl
    What if “diet” wasn’t a dirty word?

    During Suzy Karadsheh’s childhood in Port Said, Egypt, diet culture was nonexistent.

    “My parents emphasized joy at the table, rather than anything else,” Karadsheh said. “I grew up with Mediterranean lifestyle principles that celebrate eating with the seasons, eating mostly whole foods and above all else, sharing.”

    But when Karadsheh moved to the United States at age 16, she witnessed people doing detoxes or restricting certain food groups or ingredients. Surrounded by that narrative and an abundance of new foods in her college dining hall, she says she “gained the freshman 31 instead of the freshman 15.” When she returned home to Egypt that summer, “I eased back into eating the Mediterranean food that I grew up with. During the span of about two months, I shed all of that weight without thinking I was ever on a diet.”
    To help invite joy back to the table for others — and to keep her family’s culinary heritage alive for her two daughters (now 14 and 22) — Atlanta-based Karadsheh launched The Mediterranean Dish food blog 10 years ago. Quickly, her table started getting filled with more than just her friends and family.

    “I started receiving emails from folks whose doctors had prescribed the Mediterranean diet and were seeking approachable recipes,” Karadsheh said. The plant-based eating lifestyle, often rated the world’s best diet, can reduce the risk for diabetes, high cholesterol, dementia, memory loss and depression, according to research. What’s more, the meal plan has been linked to stronger bones, a healthier heart and longer life.

    Preparing meals the Mediterranean way, according to Karadsheh, can help you “eat well and live joyfully. To us, ‘diet’ doesn’t mean a list of ‘eat this’ and ‘don’t eat that.’” Instead of omission, Karadsheh focuses on abundance, asking herself, “what can I add to my life through this way of living? More whole foods, vegetables, grains, legumes? Naturally, when you add these good-for-you ingredients, you eat less of what’s not as health-promoting,” she told CNN.

  15. Patrickfeath表示:

    Automatic takeoffs are coming for passenger jets and they’re going to redraw the map of the sky
    kra10.cc

    In late 1965, at what’s now London Heathrow airport, a commercial flight coming from Paris made history by being the first to land automatically.

    The plane – A Trident 1C operated by BEA, which would later become British Airways – was equipped with a newly developed extension of the autopilot (a system to help guide the plane’s path without manual control) known as “autoland.”

    Today, automatic landing systems are installed on most commercial aircraft and improve the safety of landings in difficult weather or poor visibility.

    Now, nearly 60 years later, the world’s third largest aircraft manufacturer, Brazil’s Embraer, is introducing a similar technology, but for takeoffs.

    Called “E2 Enhanced Take Off System,” after the family of aircraft it’s designed for, the technology would not only improve safety by reducing pilot workload, but it would also improve range and takeoff weight, allowing the planes that use it to travel farther, according to Embraer.

    “The system is better than the pilots,” says Patrice London, principal performance engineer at Embraer, who has worked on the project for over a decade. ”That’s because it performs in the same way all the time. If you do 1,000 takeoffs, you will get 1,000 of exactly the same takeoff.”

    Embraer, London adds, has already started flight testing, with the aim to get it approved by aviation authorities in 2025, before introducing it from select airports.

  16. HeathZex表示:

    Meilleur Viagra sans ordonnance 24h: Acheter du Viagra sans ordonnance – Viagra pas cher livraison rapide france

  17. 8 Tips For Boosting Your Window Repair Bristol Game Bristol Double Glazing Repairs

  18. Gartandabsex表示:

    Веселые анекдоты про евреев
    Отдохни и посмейся

  19. RenaldoJer表示:

    Магазин Экипировка Эксперт
    пончо от тепловизора
    Боец, Экипировка Эксперт — это розничный магазин, сотрудничающий с рядом оптовых складов и производителей. Это значит, что при должном количестве товара мы дадим очень хорошие цены.

    Название взяли независимо от того, что наша страна сейчас проводит Специальную Военную Операцию, хорошая снаряга и экипировка нужна всегда. Готовишься в бой, мобилизован, привык активно проводить время или решил подготовить тревожный чемоданчик, мы поможем тебе. Наши клиенты: фонды, медики, такие же как ты бойцы СВО и обычные неравнодушные граждане.

    Самое главное, что нужно о нас знать, мы детально объясняем, что и как работает, чтобы ты сделал правильный выбор не переплачивая.

    Обращаясь к нам, не удивляйся, если ты получишь честный и жесткий ответ – часто случается так, что мы знаем лучше, что именно нужно нашему гостю. Особенно это касается мобилизованных без опыта боевых действий. Здесь ты можешь полагаться на нашу экспертность.

    Одна из наших основных целей предоставить тебе возможность удобной и безопасной покупки: хоть за наличку, хоть по карте, хоть по счету. Повторимся, если нужна оптовая поставка, согласуем и отгрузим. Именно от того, как ты производишь оплату, зависит цена заказа.

    Для нас важно предоставить тебе качественную экипировку и снаряжение соблюдая при этом законы нашей страны. Боец, помни, мы помогаем фондам, нуждающимся людям, подразделениям в зоне СВО. Отчеты об этом опубликованы как на сайте. На эту деятельность уходит значительная часть выручки. Делая покупки в нашем магазине, ты помогаешь людям и фронту. Уверен, что это найдет отзыв в твоем сердце.

    У нашей команды есть набор ценностей: честность, справедливость, сопереживание, взаимопомощь, мужество, патриотичность. Уверены, ты их разделяешь, и мы легко найдем общий язык. Ну а если что-то пойдет не так, не руби с плеча, объясни, где мы ошиблись и поверь, мы разберемся и исправим. Наш девиз “In hostem omnia licita” – по отношению к врагу дозволено все. Возьми этот девиз, он поможет тебе принять правильное решение в трудной ситуации, с честью выполнить боевую задачу и вернуться домой живым и здоровым!

  20. Charlesrab表示:

    pharmacie en ligne sans ordonnance pharmacies en ligne certifiГ©es pharmacie en ligne france pas cher

  21. Сервисный центр предлагает центр ремонта кофемашины electrolux починить кофемашины electrolux

  22. Stephengen表示:

    http://pharmaciepascher.pro/# Pharmacie sans ordonnance

  23. Why users still use to read news papers when in this
    technological world everything is accessible on web?

    Also visit my web site … เรียนดำน้ำลึก

  24. Сервисный центр предлагает выездной ремонт варочных панелей kaiser выездной ремонт варочных панелей kaiser

  25. Hello I am so happy I found your site, I really found you by mistake, while I was searching on Digg
    for something else, Nonetheless I am here now and would just like to say thanks
    a lot for a fantastic post and a all round entertaining blog (I also love the theme/design), I don’t have time to browse it all at the moment but I have book-marked it and
    also added your RSS feeds, so when I have time I will be back to read a great deal more, Please do keep up the great work.

  26. Lost Key For Car Tools To Improve Your Daily Lifethe One Lost Key
    For Car Trick That Everyone Should Be Able To lost key for car (ns1.Javset.net)

  27. In Which Location To Research Psychiatric Assessment Form Online
    Psychiatric Assesment

  28. Are Indoor Wood Burner Stove The Most Effective Thing That Ever Was?

    wood bruner (Mehmetnuriarslan.com)

  29. Here is how it works.ラブドール エロWe all have an idealized version of ourselves.

發佈留言

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