mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
Merge branch 'master' of https://github.com/juliandescottes/piskel
This commit is contained in:
commit
ef6ef6256e
@ -13,6 +13,8 @@
|
|||||||
this.pngFilePrefixInput = document.getElementById('zip-prefix-name');
|
this.pngFilePrefixInput = document.getElementById('zip-prefix-name');
|
||||||
this.pngFilePrefixInput.value = 'sprite_';
|
this.pngFilePrefixInput.value = 'sprite_';
|
||||||
|
|
||||||
|
this.splitByLayersCheckbox = document.getElementById('zip-split-by-layers');
|
||||||
|
|
||||||
var downloadButton = document.querySelector('.png-download-button');
|
var downloadButton = document.querySelector('.png-download-button');
|
||||||
this.addEventListener(downloadButton, 'click', this.onPngDownloadButtonClick_);
|
this.addEventListener(downloadButton, 'click', this.onPngDownloadButtonClick_);
|
||||||
|
|
||||||
@ -30,12 +32,10 @@
|
|||||||
ns.PngExportController.prototype.onZipButtonClick_ = function () {
|
ns.PngExportController.prototype.onZipButtonClick_ = function () {
|
||||||
var zip = new window.JSZip();
|
var zip = new window.JSZip();
|
||||||
|
|
||||||
for (var i = 0 ; i < this.piskelController.getFrameCount() ; i++) {
|
if (this.splitByLayersCheckbox.checked) {
|
||||||
var frame = this.piskelController.getFrameAt(i);
|
this.splittedExport_(zip);
|
||||||
var canvas = this.getFrameAsCanvas_(frame);
|
} else {
|
||||||
var basename = this.pngFilePrefixInput.value;
|
this.mergedExport_(zip);
|
||||||
var filename = basename + (i + 1) + '.png';
|
|
||||||
zip.file(filename, pskl.utils.CanvasUtils.getBase64FromCanvas(canvas) + '\n', {base64: true});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var fileName = this.getPiskelName_() + '.zip';
|
var fileName = this.getPiskelName_() + '.zip';
|
||||||
@ -47,6 +47,30 @@
|
|||||||
pskl.utils.FileUtils.downloadAsFile(blob, fileName);
|
pskl.utils.FileUtils.downloadAsFile(blob, fileName);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ns.PngExportController.prototype.mergedExport_ = function (zip) {
|
||||||
|
for (var i = 0; i < this.piskelController.getFrameCount(); i++) {
|
||||||
|
var frame = this.piskelController.getFrameAt(i);
|
||||||
|
var canvas = this.getFrameAsCanvas_(frame);
|
||||||
|
var basename = this.pngFilePrefixInput.value;
|
||||||
|
var filename = basename + (i + 1) + '.png';
|
||||||
|
zip.file(filename, pskl.utils.CanvasUtils.getBase64FromCanvas(canvas) + '\n', {base64: true});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.PngExportController.prototype.splittedExport_ = function (zip) {
|
||||||
|
var layers = this.piskelController.getLayers();
|
||||||
|
for (var j = 0; this.piskelController.hasLayerAt(j); j++) {
|
||||||
|
var layer = this.piskelController.getLayerAt(j);
|
||||||
|
for (var i = 0; i < this.piskelController.getFrameCount(); i++) {
|
||||||
|
var frame = layer.getFrameAt(i);
|
||||||
|
var canvas = this.getFrameAsCanvas_(frame);
|
||||||
|
var basename = this.pngFilePrefixInput.value;
|
||||||
|
var filename = 'l' + j + '_' + basename + (i + 1) + '.png';
|
||||||
|
zip.file(filename, pskl.utils.CanvasUtils.getBase64FromCanvas(canvas) + '\n', {base64: true});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
ns.PngExportController.prototype.getFrameAsCanvas_ = function (frame) {
|
ns.PngExportController.prototype.getFrameAsCanvas_ = function (frame) {
|
||||||
var canvasRenderer = new pskl.rendering.CanvasRenderer(frame, 1);
|
var canvasRenderer = new pskl.rendering.CanvasRenderer(frame, 1);
|
||||||
canvasRenderer.drawTransparentAs(Constants.TRANSPARENT_COLOR);
|
canvasRenderer.drawTransparentAs(Constants.TRANSPARENT_COLOR);
|
||||||
|
@ -15,6 +15,12 @@
|
|||||||
<div class="settings-item">
|
<div class="settings-item">
|
||||||
<label for="zip-prefix-name">Prefix:</label>
|
<label for="zip-prefix-name">Prefix:</label>
|
||||||
<input id="zip-prefix-name" type="text" class="textfield" placeholder="PNG file prefix ...">
|
<input id="zip-prefix-name" type="text" class="textfield" placeholder="PNG file prefix ...">
|
||||||
|
</div>
|
||||||
|
<div class="settings-item">
|
||||||
|
<label>
|
||||||
|
<input id="zip-split-by-layers" type="checkbox" />
|
||||||
|
Split by layers
|
||||||
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="button button-primary zip-generate-button"/>Download ZIP</button>
|
<button type="button" class="button button-primary zip-generate-button"/>Download ZIP</button>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user