From 748346c1c31fe6b2164332923ac3ea303289446a Mon Sep 17 00:00:00 2001 From: Stephen Johnson Date: Sat, 16 Nov 2013 19:57:55 -0800 Subject: [PATCH] Better watermark and demo (centered watermarks) --- coffee/core/core.coffee | 6 +++++- demo/index.html | 2 +- demo/watermark.png | Bin 0 -> 25838 bytes 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 demo/watermark.png diff --git a/coffee/core/core.coffee b/coffee/core/core.coffee index 3b5bf1f6..1f92a3fb 100644 --- a/coffee/core/core.coffee +++ b/coffee/core/core.coffee @@ -123,7 +123,11 @@ class LC.LiterallyCanvas @bufferCtx.fillStyle = @colors.background @bufferCtx.fillRect(0, 0, @buffer.width, @buffer.height) if @watermarkImage - @bufferCtx.drawImage(@watermarkImage, 0, 0) + @bufferCtx.drawImage( + @watermarkImage, + @canvas.width / 2 - @watermarkImage.width / 2, + @canvas.height / 2 - @watermarkImage.height / 2, + ) @draw @shapes, @bufferCtx @ctx.clearRect(0, 0, @canvas.width, @canvas.height) if @canvas.width > 0 and @canvas.height > 0 diff --git a/demo/index.html b/demo/index.html index 4fe960c9..52525b22 100644 --- a/demo/index.html +++ b/demo/index.html @@ -42,7 +42,7 @@ } }); - var watermarkImageURL = 'https://dl.dropboxusercontent.com/u/360865/Photos/26163_371929756319_650376319_4785977_7286010_n.jpg'; + var watermarkImageURL = '/demo/watermark.png'; var watermarkImage = new Image(); watermarkImage.src = watermarkImageURL; diff --git a/demo/watermark.png b/demo/watermark.png new file mode 100644 index 0000000000000000000000000000000000000000..90b1e848cc5c82e6e0a61eb568ec567b458bf41f GIT binary patch literal 25838 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