monstrum/cropbox
Composer 安装命令:
composer require monstrum/cropbox
包简介
Image Editor in standard jQuery plugin Structure. Fork from https://github.com/acornejo/jquery-cropbox
README 文档
README
jQuery plugin for in-place image cropping (zoom & pan, as opposed to select and drag).
This plugin depends only on jQuery. If either Hammer.js or jquery.hammer.js is
loaded, the cropbox plugin will support gestures for panning and zooming
the cropbox. Similary, if the jquery.mousewheel.js plugin is loaded, then the
cropbox plugin will support zoom in & out using the mousewheel. All
dependencies on third party libraries (other than jQuery) are strictly
optional. Support for CommonJS and AMD loading is built in.
In browsers that support the HTML5 FIle API and Canvas API, the cropbox plugin provides mehtods to crop the image on the client and obtain the resulting cropped image as a Data URL or a binary blob to upload it to the server.
Check out the plugin in action here http://acornejo.github.io/jquery-cropbox/
History: This plugin started as a fork of jQcrop, and added touch support, mousewheel support and client resize support through the canvas api.
Install with Bower: bower install cropbox
Usage
$('yourimage').cropbox({ width: 200, height: 200 }, function() { //on load console.log('Url: ' + this.getDataURL()); }).on('cropbox', function(e, data) { console.log('crop window: ' + data); });
Options
| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| width | integer | 200 | no | Width in pixels of the cropping window |
| height | integer | 200 | no | Height in pixels of the cropping window |
| zoom | integer | 10 | no | Number of incremental zoom steps. With the default of 10, you have to click the zoom-in button 9 times to reach 100%. |
| maxZoom | number | 1.0 | no | Maximum zoom value. With the default of 1.0 users can't zoom beyond the maximum image resolution. |
| controls | string/jquery | null | no | If not null, this is the entire html block that should appear on hover over the image for instructions and/or buttons (could include the zoom in/out buttons for example). If null, the default html block is used which has the text "Click to drag" and the zoom in/out buttons. Use false to disable controls. |
| result | {cropX:number, cropY:number, cropW:number, cropH:number} | null | no | Set the initial cropping area |
| showControls | never, always, hover, auto | auto | no | This flag is used to determine when to display the controls. Never, always and hover do exactly what you would expect (never show them, always show them, show them on hover). The auto flag is the same as the hover flag, except that on mobile devices it always shows the controls (since there is no hover event). |
Methods
| Name | Parameters | Description |
|---|---|---|
| zoomIn | (none) | Increase image zoom level by one step |
| zoomOut | (none) | Decrease image zoom level by one step |
| zoom | percent | Set zoom leevl to a value between 0 and 1. Need to call update to reflect the changes. |
| drag | {startX: integer, startY: integer, dx: integer, dy: integer} | Simulate image dragging, starting from (startX,startY) and moving a delta of (dx,dy). Need to call update to reflect the changes. |
| setCrop | {cropX: number, cropY: number, cropW: number, cropH: number} | Set crop window. |
| update | (none) | Update the cropped result (must call after zoom and drag). |
| getDataURL | (none) | Generate a URL for the cropped image on the client (requires HTML5 compliant browser). |
| getBlob | (none) | Generate a Blob with the cropped image (requires HTML5 compliant browser). |
| remove | (none) | Remove the cropbox functionality from the image. |
Event
To get the crop results, bind a function on the cropbox event or read the object's result property .
$('yourimage').cropbox({width: 250, height: 250}) .on('cropbox', function (e, result) { console.log(result); });
A reference to the cropbox object can be accessed like so:
var crop = $('yourimage').data('cropbox'); console.log(crop.result);
or inside the onload function:
var crop = $('yourimage').cropbox({}, function() { console.log(this.result); });
You then have access to all the properties and methods used for that specific element.
Bug Reporting
Use the issues section to report any problems or questions regarding jquery-cropbox.
Please understand that I develop this plugin in my spare time, which is limited. To make the best use of my time, I ask that you submit a detailed bug report and include a jsfiddle that exhibits the problem, otherwise I won't be able to offer much help.
A sample jsfiddle is provided here, fork it and create a minimal example that recreates the problem you are having and provide a link to it in the issue.
monstrum/cropbox 适用场景与选型建议
monstrum/cropbox 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 58 次下载、GitHub Stars 达 0, 最近一次更新时间为 2015 年 07 月 26 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「thumbnail」 「crop」 「image drag and crop」 「zoom and crop」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 monstrum/cropbox 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 monstrum/cropbox 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 monstrum/cropbox 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A bundle providing fields for image upload with jquery upload and image cropping with jcrop for symfony2
Yii2 LightBox image galary widget uses Lightbox v2.10.0 by Lokesh Dhakar
The Yii2 extension uses jQuery jquery.carousel-1.1.min.js and makes image carousel from php array of structure defined.
A PHP library for fetching thumbnails from a URL
A image cropping field for kirby.
The Yii2 extension uses jQuery PrettyPhoto and OwlCarousel js and makes image galary from php array of structure defined.
统计信息
- 总下载量: 58
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 18
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-07-26