Skip to content

Commit

Permalink
0.1.0.
Browse files Browse the repository at this point in the history
  • Loading branch information
b4rtaz committed Oct 27, 2023
1 parent 6bb2a82 commit 530d07f
Show file tree
Hide file tree
Showing 14 changed files with 239 additions and 70 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Online Examples:

* [🎬 Template Creator](https://img-js.github.io/mini-canvas-editor/webpack-app/public/template-creator.html)
* [🎨 Inpainting Mask](https://img-js.github.io/mini-canvas-editor/webpack-app/public/inpainting-mask.html)
* [🔲 Crop](https://img-js.github.io/mini-canvas-editor/webpack-app/public/crop.html)
* [📦 Vanilla JavaScript](https://img-js.github.io/mini-canvas-editor/webpack-app/public/vanilla-javascript.html)

## 🚀 Installation
Expand Down Expand Up @@ -54,8 +55,8 @@ Add the below code to your head section in HTML document.
```html
<head>
...
<link href="https://cdn.jsdelivr.net/npm/mini-canvas-editor@0.0.10/css/editor.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/mini-canvas-editor@0.0.10/dist/index.umd.js"></script>
<link href="https://cdn.jsdelivr.net/npm/mini-canvas-editor@0.1.0/css/editor.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/mini-canvas-editor@0.1.0/dist/index.umd.js"></script>
```

Create the editor by:
Expand Down
4 changes: 2 additions & 2 deletions demos/svelte-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
"prettier:fix": "prettier --write ./src"
},
"dependencies": {
"mini-canvas-editor": "^0.0.10",
"mini-canvas-core": "^0.0.10",
"mini-canvas-editor": "^0.1.0",
"mini-canvas-core": "^0.1.0",
"fabric": "6.0.0-beta13",
"canvas": "^2.11.2"
},
Expand Down
Binary file modified demos/svelte-app/static/favicon.ico
Binary file not shown.
8 changes: 4 additions & 4 deletions demos/webpack-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
"build": "pnpm clean && webpack --mode production",
"eslint": "eslint ./src --ext .ts",
"test:single": "echo \"No tests yet\"",
"prettier": "prettier --check ./src",
"prettier:fix": "prettier --write ./src"
"prettier": "prettier --check ./src ./public/**/*.html ./public/**/*.css",
"prettier:fix": "prettier --write ./src ./public/**/*.html ./public/**/*.css"
},
"dependencies": {
"mini-canvas-editor": "^0.0.10",
"mini-canvas-core": "^0.0.10"
"mini-canvas-editor": "^0.1.0",
"mini-canvas-core": "^0.1.0"
},
"devDependencies": {
"ts-loader": "^9.4.2",
Expand Down
38 changes: 38 additions & 0 deletions demos/webpack-app/public/assets/common.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
html,
body {
margin: 0;
padding: 0;
font: 14px/1.5em Arial, Verdana, sans-serif;
}

.header {
position: relative;
z-index: 1000;
display: flex;
width: 100%;
background: #474747;
color: #fff;
}
.header.bb {
border-bottom: 4px solid #252525;
}
.header-title {
flex: 1;
padding: 10px;
}
.header-title h1 {
margin: 0;
padding: 0;
font-size: 14px;
font-weight: normal;
}
.header-links {
padding: 10px;
}
.header-links a {
color: #fff;
text-decoration: underline;
}
.header-links a:hover {
text-decoration: none;
}
Binary file modified demos/webpack-app/public/assets/favicon.ico
Binary file not shown.
64 changes: 64 additions & 0 deletions demos/webpack-app/public/crop.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>🔲 Crop Example - Mini Canvas Editor</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<link rel="icon" href="./assets/favicon.ico" />
<link href="./assets/common.css" rel="stylesheet" />
<style>
body {
background: url('./assets/background-pattern.svg');
}
p {
text-align: center;
margin: 0;
padding: 10px 0;
}
#editor-placeholder {
margin: 0 auto;
width: 50vw;
height: 50vh;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}
@media only screen and (max-width: 600px) {
#editor-placeholder {
width: 100%;
}
}
#save-button {
border: 0;
padding: 10px 20px;
color: #fff;
background: navy;
cursor: pointer;
border-radius: 5px;
}
#save-button:hover {
opacity: 0.8;
}
a {
color: navy;
}
a:hover {
text-decoration: none;
}
</style>
<script src="./builds/crop.js" defer></script>
</head>
<body>
<header class="header">
<div class="header-title">
<h1>🔲 Crop Example</h1>
</div>
<div class="header-links">
<a href="https://github.com/img-js/mini-canvas-editor" target="_blank">Mini Canvas Editor</a>
</div>
</header>

<div id="editor-placeholder"></div>
<p>
<button id="save-button">💾 Save cropped image</button>
</p>
</body>
</html>
21 changes: 11 additions & 10 deletions demos/webpack-app/public/inpainting-mask.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,16 @@
<title>🎨 Inpainting Mask Example - Mini Canvas Editor</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<link rel="icon" href="./assets/favicon.ico" />
<link href="./assets/common.css" rel="stylesheet" />
<style>
html,
body {
margin: 0;
padding: 0;
font: 14px/1.5em Arial, Verdana, sans-serif;
min-height: 100%;
background: url('./assets/background-pattern.svg');
}
#placeholder {
width: 100%;
height: 50vh;
}
p, .debug {
.debug {
text-align: center;
margin: 0;
padding: 10px 0;
Expand All @@ -33,15 +29,20 @@
<script src="./builds/inpainting-mask.js" defer></script>
</head>
<body>
<header class="header bb">
<div class="header-title">
<h1>🎨 Inpainting Mask Example</h1>
</div>
<div class="header-links">
<a href="https://github.com/img-js/mini-canvas-editor" target="_blank">Mini Canvas Editor</a>
</div>
</header>

<div id="placeholder"></div>

<div class="debug">
<img id="previewImage" class="preview-image" />
<img id="previewMaskImage" class="preview-image" />
</div>

<p>
<a href="https://github.com/img-js/mini-canvas-editor">Mini Canvas Editor</a>
</p>
</body>
</html>
21 changes: 11 additions & 10 deletions demos/webpack-app/public/template-creator.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,14 @@
<title>🎬 Template Creator Example - Mini Canvas Editor</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<link rel="icon" href="./assets/favicon.ico" />
<link href="./assets/common.css" rel="stylesheet" />
<style>
html,
body {
margin: 0;
padding: 0;
font: 14px/1.5em Arial, Verdana, sans-serif;
background: url('./assets/background-pattern.svg');
min-height: 100%;
}
#placeholder {
width: 100%;
height: 60vh;
height: 50vh;
}
p {
text-align: center;
Expand All @@ -39,6 +35,15 @@
<script src="./builds/template-creator.js" defer></script>
</head>
<body>
<header class="header bb">
<div class="header-title">
<h1>🎬 Template Creator Example</h1>
</div>
<div class="header-links">
<a href="https://github.com/img-js/mini-canvas-editor" target="_blank">Mini Canvas Editor</a>
</div>
</header>

<div id="placeholder"></div>

<p>Rects named $cat are replaced with a cat image, $name variables in texboxes are replaced by some name.</p>
Expand All @@ -48,9 +53,5 @@
<div class="debug">
<img id="preview" />
</div>

<p>
<a href="https://github.com/img-js/mini-canvas-editor">Mini Canvas Editor</a>
</p>
</body>
</html>
39 changes: 23 additions & 16 deletions demos/webpack-app/public/vanilla-javascript.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,9 @@
<title>📦 Vanilla JavaScript Example - Mini Canvas Editor</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<link rel="icon" href="./assets/favicon.ico" />
<link href="./assets/common.css" rel="stylesheet" />
<style>
html,
body {
margin: 0;
padding: 0;
font: 14px/1.5em Arial, Verdana, sans-serif;
min-height: 100%;
background: url('./assets/background-pattern.svg');
}
#placeholder {
Expand All @@ -25,28 +21,39 @@
</style>
</head>
<body>
<header class="header bb">
<div class="header-title">
<h1>📦 Vanilla JavaScript Example</h1>
</div>
<div class="header-links">
<a href="https://github.com/img-js/mini-canvas-editor" target="_blank">Mini Canvas Editor</a>
</div>
</header>

<div id="placeholder"></div>

<p>
<button id="saveButton">Save bitmap</button>
</p>
<p>
<a href="https://github.com/img-js/mini-canvas-editor">Mini Canvas Editor</a>
</p>
<p>This example uses vanilla JavaScript!</p>

<link href="https://cdn.jsdelivr.net/npm/mini-canvas-editor@0.0.10/css/editor.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/mini-canvas-editor@0.0.10/dist/index.umd.js"></script>
<link href="https://cdn.jsdelivr.net/npm/mini-canvas-editor@0.1.0/css/editor.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/mini-canvas-editor@0.1.0/dist/index.umd.js"></script>
<script>
const placeholder = document.getElementById('placeholder');
const saveButton = document.getElementById('saveButton');
const editor = miniCanvasEditor.Editor.createBlank(placeholder, 200, 300, {});

saveButton.addEventListener('click', () => {
const a = document.createElement('a');
a.download = 'filename.png';
a.href = editor.render().toDataURL('image/png');
a.click();
}, false);
saveButton.addEventListener(
'click',
() => {
const a = document.createElement('a');
a.download = 'filename.png';
a.href = editor.render().toDataURL('image/png');
a.click();
},
false
);
</script>
</body>
</html>
49 changes: 49 additions & 0 deletions demos/webpack-app/src/crop.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import { Editor, EditorMode } from 'mini-canvas-editor';

import 'mini-canvas-editor/css/editor.css';

export class App {
public static preload() {
const preloader = new Image();
preloader.src = './assets/cat.jpg';
preloader.onload = () => App.create(preloader);
}

public static create(image: HTMLImageElement) {
const placeholder = document.getElementById('editor-placeholder') as HTMLElement;
const saveButton = document.getElementById('save-button') as HTMLElement;

const editor = Editor.createFromImage(
placeholder,
image,
{
workspaceHeight: 160,
workspaceWidth: 200,
fitToWorkspace: true,
select: true
},
{
initialMode: EditorMode.select,
brush: false,
rect: false,
image: false,
textbox: false,
sidebar: false
}
);
const app = new App(editor);
saveButton.addEventListener('click', app.onSaveClicked, false);
return app;
}

private constructor(private readonly editor: Editor) {}

private readonly onSaveClicked = () => {
const a = document.createElement('a');
a.download = 'crop.png';
a.href = this.editor.render().toDataURL('image/png');
a.click();
};
}

document.addEventListener('DOMContentLoaded', App.preload, false);
29 changes: 18 additions & 11 deletions demos/webpack-app/src/inpainting-mask.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,25 @@ export class App {
const previewImage = document.getElementById('previewImage') as HTMLImageElement;
const previewMaskImage = document.getElementById('previewMaskImage') as HTMLImageElement;

const editor = Editor.createFromImage(placeholder, image, false, {
initialMode: EditorMode.brush,
brush: {
brushColor: '#ff0000',
brushSize: 20
const editor = Editor.createFromImage(
placeholder,
image,
{
selectable: false
},
rect: {
fillColor: '#ff0000'
},
image: false,
textbox: false
});
{
initialMode: EditorMode.brush,
brush: {
brushColor: '#ff0000',
brushSize: 20
},
rect: {
fillColor: '#ff0000'
},
image: false,
textbox: false
}
);
const app = new App(editor, previewImage, previewMaskImage);
editor.onChanged.subscribe(app.reloadPreview);
app.reloadPreview();
Expand Down
Loading

0 comments on commit 530d07f

Please sign in to comment.