Canvas Based Image Cropping Library For jQuery - Croppie
| File Size: | 877 KB |
|---|---|
| Views Total: | 26958 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
Croppie is an Html5 canvas based image cropping library that lets you create a square or circular viewport permitting to visually resize an image while preserving aspect ratio and perform a crop.
Also can be used as a jQuery plugin.
Basic usage:
1. Include the croppie library and other resources in your html file.
<!-- Stylesheet --> <link rel="stylesheet" href="croppie.css" /> <!-- jQuery is optional --> <script src="/path/to/cdn/jquery.min.js"></script> <!-- croppie.js --> <script src="croppie.js"></script>
2. Create an empty container or even an image for the image cropper.
<div id="demo"></div> <img id="image-demo" src="1.jpg" />
3. Generate a basic image cropper.
// As a jQuery plugin
$('#demo').croppie({
url: '1.jpg',
});
$('#image-demo').croppie();
// As a Vanilla JavaScript plugin
var instance = new Croppie(document.getElementById('demo'), {
url: '1.jpg'
});
var instance = new Croppie(document.getElementById('image-demo'));
4. Available options to customize your image cropper.
$('#demo').croppie({
// viewport options
viewport: {
width: 100,
height: 100,
type: 'square' // or 'circle'
},
// boundary options
boundary: {
width: 300,
height: 300
},
// orientation controls
orientationControls: {
enabled: true,
leftClass: '',
rightClass: ''
},
// resize controls
resizeControls: {
width: true,
height: true
},
// addiontal CSS class
customClass: '',
// enable image zoom
enableZoom: true,
// enable image resize
enableResize: false,
// show image zoom control
showZoomer: true,
// image zoom with mouse wheel
mouseWheelZoom: true,
// enable exif orientation reading
enableExif: false,
// restrict zoom so image cannot be smaller than viewport
enforceBoundary: true,
// enable orientation
enableOrientation: false,
// enable key movement
enableKeyMovement: true,
// callback
update: function () { }
});
5. API methods.
// get result from croppie
$('#demo').croppie('get');
/* get cropped image
result({ type, size, format, quality, circle })
type: The type of result to return:
'base64': returns a the cropped image encoded in base64
'html': returns html of the image positioned within an div of hidden overflow
'blob': returns a blob of the cropped image
'rawcanvas': returns the canvas element allowing you to manipulate prior to getting the resulted image
size: The size of the cropped image defaults to 'viewport'
'viewport': the size of the resulting image will be the same width and height as the viewport
'original': the size of the resulting image will be at the original scale of the image
{width, height}: an object defining the width and height. If only one dimension is specified, the other will be calculated using the viewport aspect ratio.
format: The image format. Valid values:'jpeg'|'png'|'webp'
quality: between 0 and 1 indicating image quality.
circle: force the result to be cropped into a circle
*/
$('#demo').croppie('result', 'canvas').then(function (img) {
//img is html positioning & sizing the image correctly if resultType is 'html'
//img is base64 url of cropped image if resultType is 'canvas'
});
/* bind an image to croppie
bind({ url, points, orientation, zoom })
url: URL to image
points: Array of points that translate into [topLeftX, topLeftY, bottomRightX, bottomRightY]
zoom: Apply zoom after image has been bound
orientation: Custom orientation:
1: unchanged
2: flipped horizontally
3: rotated 180 degrees
4: flipped vertically
5: flipped horizontally, then rotated left by 90 degrees
6: rotated clockwise by 90 degrees
7: flipped horizontally, then rotated right by 90 degrees
8: rotated counter-clockwise by 90 degrees
*/
$('#demo').croppie('bind',{
url: 'path/to/image.jpg',
points: [x1, y1, x2, y2]
});
7. Event handler.
// As a jQuery plugin
$('.my-element').on('update.croppie', function(ev, cropData) {
// do something
});
// As a Vanilla JavaScript plugin
document.getElementById('#my-element').addEventListener('update', function(ev) {
var cropData = ev.detail;
});
Changelog:
2019-12-01
- Small release to fix an issue with an unassigned variable.
This awesome jQuery plugin is developed by Foliotek. For more Advanced Usages, please check the demo page or visit the official website.











