1 |
|
2 |
|
3 | if (!window._seeds_lang) window._seeds_lang = {};
|
4 |
|
5 | var CanvasUtil = {
|
6 | cropImg: function cropImg() {
|
7 | var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
8 |
|
9 |
|
10 | var errMsg = '';
|
11 | if (isNaN(opts.x)) {
|
12 | errMsg = 'SeedsUI Error:CanvasUtil.cropImg裁切方法x参数不正确';
|
13 | console.warn(errMsg);
|
14 | return errMsg;
|
15 | }
|
16 | if (isNaN(opts.y)) {
|
17 | errMsg = 'SeedsUI Error:CanvasUtil.cropImg,' + (window._seeds_lang['method'] || '方法') + 'y' + (window._seeds_lang['wrong_parameter'] || '参数不正确');
|
18 | console.warn(errMsg);
|
19 | return errMsg;
|
20 | }
|
21 | if (isNaN(opts.width)) {
|
22 | errMsg = 'SeedsUI Error:CanvasUtil.cropImg,' + (window._seeds_lang['method'] || '方法') + 'width' + (window._seeds_lang['wrong_parameter'] || '参数不正确');
|
23 | console.warn(errMsg);
|
24 | return errMsg;
|
25 | }
|
26 | if (isNaN(opts.height)) {
|
27 | errMsg = 'SeedsUI Error:CanvasUtil.cropImg,' + (window._seeds_lang['method'] || '方法') + 'width' + (window._seeds_lang['wrong_parameter'] || '参数不正确');
|
28 | console.warn(errMsg);
|
29 | return errMsg;
|
30 | }
|
31 | var suffix = opts.suffix || 'image/png';
|
32 | var quality = opts.quality || 0.92;
|
33 |
|
34 | var canvas = document.getElementById('imgcrop_canvas');
|
35 | if (!canvas) {
|
36 | canvas = document.createElement('canvas');
|
37 | canvas.setAttribute('id', 'imgcrop_canvas');
|
38 | document.body.appendChild(canvas);
|
39 | }
|
40 | var ctx = canvas.getContext('2d');
|
41 | canvas.width = opts.width;
|
42 | canvas.height = opts.height;
|
43 | var img = new Image();
|
44 | img.src = opts.src;
|
45 | img.crossOrigin = 'Anonymous';
|
46 | img.addEventListener('load', function () {
|
47 | ctx.drawImage(img, opts.x, opts.y, opts.width, opts.height, 0, 0, opts.width, opts.height);
|
48 |
|
49 | try {
|
50 | if (opts.onSuccess) opts.onSuccess(canvas.toDataURL(suffix, quality));
|
51 | } catch (error) {
|
52 | if (opts.onError) opts.onError(error);
|
53 | }
|
54 | }, false);
|
55 | }
|
56 | };
|
57 |
|
58 | export default CanvasUtil; |
\ | No newline at end of file |