透過網頁讀取PSD後,依圖層輸出PNG檔案
在前面介紹過網頁可以讀取PSD檔案並擷取到該檔案的資訊,接著我們會希望能透過網頁上傳PSD檔之後,依照圖層來輸出圖片,同樣是利用PSD.js來輔助進行,可以透過我們製作的範例頁面來進行輸出測試。
預設輸出效果
透過PSD.js可將PSD內的各圖層輸出成PNG圖檔,亦可轉成Base 64圖檔格式,惟輸出時每個圖檔的尺寸並不會根據整體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 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中並不具備這樣的功能,於是我們透過下述的方式來達成:
- 擷取PSD資訊並將圖檔轉為Base 64格式
- 產生與PSD尺寸大小相同的HTML Canvas
- 將產生的Base 64圖檔,依照原始位置放入Canvas中
- 將Canvas轉成PNG圖檔
可以參考我們製作的範例頁面
<!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. 無法輸出帶有遮色片效果的圖片
解決方法:將圖層轉為智慧型物件,即可輸出相對應的圖檔。
3. 無法依圖層混合模式輸出圖片
解決方法:無法解決
карниз с электроприводом карниз с электроприводом .
вызов нарколога на дом круглосуточно https://www.masa.forum24.ru/?1-16-0-00002626-000-0-0-1730730156 .
prednisone buy without prescription: cheap prednisone – where can i buy prednisone without prescription
An Guide To Mystery Box In 2024 Open Online Mystery Boxes
14 Cartoons About Renault Megane Replacement Key Card Which
Will Brighten Your Day renault key Card repair
What’s The Reason You’re Failing At Treehouse Bunk Bed treehouse
bed uk (https://Www.scdmtj.com/Home.Php?mod=space&uid=1958269)
Захотел сделать ремонт в комнате, но немного не хватило на материалы — около 25 тысяч рублей. В Telegram-канале Займы без отказа на карту нашел много новых предложений от проверенных МФО. Там же дали советы, как оформлять займ, чтобы не было отказов. Выбрал вариант с минимальной ставкой 0,8% и без требований к доходу. Оформил все за 10 минут, деньги пришли быстро. Ремонт закончил вовремя, а проценты оказались совсем небольшими.
The Mesothelioma Litigation Awards: The Best,
Worst And Weirdest Things We’ve Seen Mesothelioma law firm
It’s going to be finish of mine day, except before ending I am
reading this fantastic piece of writing to increase my knowledge.
generic amoxicillin cost: amoxil com pharm – buy amoxicillin 500mg
One Of The Most Innovative Things Happening With Adhd Assessment Adult adhd assessment cost – Iris,
how can i get generic clomid without insurance: clomid online – can i get clomid no prescription
amoxicillin 500mg buy online canada: Amoxicillin for sale – can you buy amoxicillin over the counter canada
even though he got verbal consent from Alex? Something feels amiss.ラブドール 通販Something still feels icky.
オナニー 用We assign magical qualities to others.We idealise and pursue them,
How Symptoms Of Depression Or Anxiety Changed My Life For The Better Signs Of moderate depression
海外 セックスthey used terms like “an animal person,” “animal crazy” or “animal lover.
consider each situation individually.セックス 人形Always factor in your own energy level and physical and emotional limitations to assess how much you have to give.
lacking in meaning,ラブドールor assumed to be a coincidence.
ラブドール 通販and Stage Five,Taking Action,
ダッチワイフthey do not,at least not directly.
ダッチワイフ と はthe film gives the viewer insight into the difference between strictly narcissistic characters and psychopathic characters.A narcissistic character,
a truly astounding egocentricity and sense of entitlement,ラブドール セックスand see themselves as the center of the universe,
エロ ラブドールMy sex doll ticks all of those boxes; he really helps me with experimenting and understanding my sexual desires.It’s empowering in a way I didn’t quite expect,
On top of that,it’s also important to store your silicone lover in dry,ラブドール アニメ
ラブドール おすすめIt looks like we may start to see the first robotic sex dolls hitting the shelves later in 2024 – although you can expect a quite hefty price tag with it.4) Developments in Artificial IntelligenceAlong with the advancements in robotics,
オナホドールSex dolls came with unfair stereotypes,and if you owned one,
must take care of Rene,and Rene’s mistake is excused.エロドール
motivations,ラブドール 高級constraints,
高級 ラブドールfew truly experience the hidden sounds that are produced in beautiful oceans with which our planet is blessed.And that is why Sounds of the Ocean,