diff --git a/app/data/ct.libs/capture/index.js b/app/data/ct.libs/capture/index.js index 7023c65fe..cca1bacf6 100644 --- a/app/data/ct.libs/capture/index.js +++ b/app/data/ct.libs/capture/index.js @@ -3,14 +3,17 @@ const downloadTexture = function (canvas, name) { if (name) { name = name.toString(); - if (name.lastIndexOf('.png') !== name.screenshots.length - 4) { + if (!name.endsWith('.png')) { name += '.png'; } } const a = document.createElement('a'); a.setAttribute('href', canvas.toDataURL('image/png')); screenshots++; - a.setAttribute('download', name || `${ct.meta.name || 'Screenshot'}_${screenshots}.png`); + a.setAttribute( + 'download', + name || `${ct.meta.name || 'Screenshot'}_${screenshots}.png` + ); a.style.display = 'none'; document.body.appendChild(a); a.click(); @@ -23,12 +26,28 @@ height: ct.pixiApp.renderer.height }); ct.pixiApp.renderer.render(ct.pixiApp.stage, renderTexture); - var canvas = ct.pixiApp.renderer.extract.canvas(renderTexture); + const canvas = ct.pixiApp.renderer.extract.canvas(renderTexture); + downloadTexture(canvas, name); + }, + portion(x, y, width, height, name) { + const rec = new PIXI.Rectangle(x, y, width, height); + const renderTexture = PIXI.RenderTexture.create({ + width: ct.pixiApp.renderer.width, + height: ct.pixiApp.renderer.height + }); + ct.pixiApp.renderer.render(ct.pixiApp.stage, renderTexture); + renderTexture.frame = rec; + const canvas = ct.pixiApp.renderer.extract.canvas(renderTexture); downloadTexture(canvas, name); }, object(obj, name) { - var canvas = PIXI.Extract.canvas(obj); + const prevX = obj.x, + prevY = obj.y; + obj.x = obj.y = 0; + const canvas = ct.pixiApp.renderer.extract.canvas(obj, obj.getBounds()); downloadTexture(canvas, name); + obj.x = prevX; + obj.y = prevY; } }; })();