mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
Issue #357 : Trans. -> white if too many colors + add test files
This commit is contained in:
parent
e1592a8ace
commit
6583d8f8b9
1
misc/gif-tests/low-colors-no-transparency.piskel
Normal file
1
misc/gif-tests/low-colors-no-transparency.piskel
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"modelVersion":2,"piskel":{"name":"low-colors-no-transparency","description":"","fps":12,"height":60,"width":60,"layers":["{\"name\":\"Layer 1\",\"frameCount\":2,\"base64PNG\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAA8CAYAAACtrX6oAAABZUlEQVR4nO3cwRHCMAxE0RSUGlIF1TBDMTRAi1BCsCVZK/kf/n0n7xr5+FzXd6fe57lVR/YHBxhggAEGGGCA9yj7gwMMMMAAAwwwwHsEcPOWAR/Px22dgM/367bywP+grsbORl2NHQJsgY2GVoONhnYH9sSNQFbGjUB2A46AjYBWho2AdgFegeuFXAXXC9kMvBLXA7kSrgeyCTgD14pcDdeKDDDAergW5Iq4FuQp4GxYC3JV3FlkgAHWxZ1Brow7gwwwwACrFQacDemBXB13FBlggAFWDGCAAQYYYNkABhhggAGWLQRYFXlk/wiwKvLIfoABBlitUGA15NHto8BqyKPbAQZYF3lm9wywCvLMbv6qLII8uxlggPWQLXstwFnIlr3cJokjW7dyXSiM7LGT+2BBaM99XPiLIXtv440OEeioTbyyk4i9YgfvZDUP4OYB3DyAmwdw8wBuHsDNA7h5ADcP4Ob9AHU/4CXfXtXyAAAAAElFTkSuQmCC\"}"],"expanded":false}}
|
1
misc/gif-tests/low-colors-with-transparency.piskel
Normal file
1
misc/gif-tests/low-colors-with-transparency.piskel
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"modelVersion":2,"piskel":{"name":"low-colors-with-transparency","description":"","fps":12,"height":60,"width":60,"layers":["{\"name\":\"Layer 1\",\"frameCount\":2,\"base64PNG\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAA8CAYAAACtrX6oAAABOUlEQVR4nO3bQWoDQQxEUR3Ix8lpAj5MTmovQsNgEmwYdZVG+h9q3+KtO4KIiIiIiIiIiIhoUN9fj7dr1O3n/ng39xvP9wlqI+xPUHtgn4G9IPQZ2OtBZ+JeADkTtzbyDtjC0Dtg60IrcAshK3DrICtxCyArcf3IDlwjsgPXiwxwY2AnrgHZiatHdsOKkd2wemQ3KsAbc4OKkd2gemQ3JsAAZ+bG1AK7IcXIbkg9shsRYIAzcyMCDHBybkSAAc7MjQgwwMm5EQEGODM3oh44oibyxtyQWtwIgAts570AF9jOe39zg4pwV25QLW4EwO2BI2ogC3PDanFXQ3BXs3AjAG4PHMHPhta4qyG4q1m4qyG4q1m4x5rDvjYH9tgQ3NUs3GPNYV+bA/tXTVH/awYqERERERERERFRVk8BxgukicHldgAAAABJRU5ErkJggg==\"}"],"expanded":false}}
|
1
misc/gif-tests/too-many-colors-no-transparency.piskel
Normal file
1
misc/gif-tests/too-many-colors-no-transparency.piskel
Normal file
File diff suppressed because one or more lines are too long
1
misc/gif-tests/too-many-colors-with-transparency.piskel
Normal file
1
misc/gif-tests/too-many-colors-with-transparency.piskel
Normal file
File diff suppressed because one or more lines are too long
@ -6,6 +6,7 @@
|
|||||||
var MAX_EXPORT_ZOOM = 20;
|
var MAX_EXPORT_ZOOM = 20;
|
||||||
var DEFAULT_EXPORT_ZOOM = 10;
|
var DEFAULT_EXPORT_ZOOM = 10;
|
||||||
var MAGIC_PINK = '#FF00FF';
|
var MAGIC_PINK = '#FF00FF';
|
||||||
|
var WHITE = '#FFFFFF';
|
||||||
|
|
||||||
ns.GifExportController = function (piskelController) {
|
ns.GifExportController = function (piskelController) {
|
||||||
this.piskelController = piskelController;
|
this.piskelController = piskelController;
|
||||||
@ -105,10 +106,16 @@
|
|||||||
var currentColors = pskl.app.currentColorsService.getCurrentColors();
|
var currentColors = pskl.app.currentColorsService.getCurrentColors();
|
||||||
|
|
||||||
var preserveColors = currentColors.length < MAX_GIF_COLORS;
|
var preserveColors = currentColors.length < MAX_GIF_COLORS;
|
||||||
var transparentColor = this.getTransparentColor(currentColors);
|
|
||||||
|
|
||||||
|
var transparentColor, transparent;
|
||||||
// transparency only supported if preserveColors is true, see Issue #357
|
// transparency only supported if preserveColors is true, see Issue #357
|
||||||
var transparent = preserveColors ? parseInt(transparentColor.substring(1), 16) : null;
|
if (preserveColors) {
|
||||||
|
transparentColor = this.getTransparentColor(currentColors);
|
||||||
|
transparent = parseInt(transparentColor.substring(1), 16);
|
||||||
|
} else {
|
||||||
|
transparentColor = WHITE;
|
||||||
|
transparent = null;
|
||||||
|
}
|
||||||
|
|
||||||
var gif = new window.GIF({
|
var gif = new window.GIF({
|
||||||
workers: 5,
|
workers: 5,
|
||||||
@ -122,6 +129,9 @@
|
|||||||
for (var i = 0 ; i < this.piskelController.getFrameCount() ; i++) {
|
for (var i = 0 ; i < this.piskelController.getFrameCount() ; i++) {
|
||||||
var frame = this.piskelController.getFrameAt(i);
|
var frame = this.piskelController.getFrameAt(i);
|
||||||
var canvasRenderer = new pskl.rendering.CanvasRenderer(frame, zoom);
|
var canvasRenderer = new pskl.rendering.CanvasRenderer(frame, zoom);
|
||||||
|
if (preserveColors) {
|
||||||
|
|
||||||
|
}
|
||||||
canvasRenderer.drawTransparentAs(transparentColor);
|
canvasRenderer.drawTransparentAs(transparentColor);
|
||||||
var canvas = canvasRenderer.render();
|
var canvas = canvasRenderer.render();
|
||||||
gif.addFrame(canvas.getContext('2d'), {
|
gif.addFrame(canvas.getContext('2d'), {
|
||||||
|
Loading…
Reference in New Issue
Block a user