Create A Rotatable & Scalable Photo Grid With Canvas Table
| File Size: | 117 KB |
|---|---|
| Views Total: | 3400 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
Canvas Table is a simple jQuery based image editing tool to dynamically generate a customizable photo grid using HTML5 canvas.
Click/tap on the photo grid to rotate, scale, and/or pan around an image and then click the Generate button to render a new photo grid that is downloadable as a PNG image (base64 encoded).
How to use it:
1. Create an empty <canvas /> element on which the plugin renders the image editing area.
<canvas id="canvas"></canvas>
2. Create the Scale and Rotate slider controls.
<label for="scaleRange">Scale</label> <input id="scaleRange" type="range" disabled="disabled" min="0.1" max="2" step="0.1" value="1" /> <label for="rotateRange">Rotate</label> <input id="rotateRange" type="range" disabled="disabled" min="-360" max="360" step="1" value="0" />
3. Create a Generate button to render a photo grid after images have been edited.
<button id="createButton" type="button">Create Table</button>
4. Create an empty <img /> to hold the photo grid image.
<button id="createButton" type="button">Create Table</button>
5. Download and insert the JavaScript canvas-table.js after loading the latest jQuery library.
<script src="/path/to/cdn/jquery.min.js"></script> <script src="/path/to/canvas-table.js"></script>
6. Initialize the plugin on the <canvas /> element and define the paths to the images as follows:
const $canvasTable = $("#canvas").canvasTable({
// css grid template areas
templateAreas: ["photo1 photo1 photo1", "photo2 photo3 photo3"],
images: [
{
area: "photo1",
source: "1.jpg"
},
{
area: "photo2",
source: "2.jpg"
},
{
area: "photo3",
source: "3.jpg"
}
],
onSelected(selectedArea) {
$("#scaleRange").attr("disabled", false);
$("#rotateRange").attr("disabled", false);
$("#scaleRange").val(selectedArea.image.scale);
$("#rotateRange").val(selectedArea.image.rotate);
}
});
7. Enable the controls & generate button.
$("#scaleRange").on("input", (event) => {
$canvasTable.changeScale(event.target.value);
});
$("#rotateRange").on("input", (event) => {
$canvasTable.changeRotate(event.target.value);
});
$("#createButton").click(() => {
$canvasTable.setDefault();
const canvasSource = $canvasTable.createPhoto();
$("#previewTable").attr("src", canvasSource);
});
8. Customize the appearance of the canvas table.
const $canvasTable = $("#canvas").canvasTable({
width: 500,
height: 500,
templateAreas: [],
images: [],
gap: 1,
fillStyle: "#fff",
strokeStyle: "red",
strokeDash: 0,
strokeWidth: 3,
frameImage: "",
frameWidth: 0,
showAlignmentLines: true,
onSelected: () => null
});
9. API methods:
// scale the image $canvasTable.changeScale(string | number ); // rotate the image $canvasTable.changeRotate(string | number ); // generate a photo grid $canvasTable.createPhoto(type: 'image/png');
Changelog:
2020-06-22
- Changed preview
2020-06-22
- Changed preview
This awesome jQuery plugin is developed by enessefak. For more Advanced Usages, please check the demo page or visit the official website.








