ksp-image-cutter.js 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618
  1. (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["components/ksp-image-cutter/ksp-image-cutter"],{
  2. /***/ 1061:
  3. /*!******************************************************************************!*\
  4. !*** E:/project/bigdata_WX/components/ksp-image-cutter/ksp-image-cutter.vue ***!
  5. \******************************************************************************/
  6. /*! no static exports found */
  7. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8. "use strict";
  9. __webpack_require__.r(__webpack_exports__);
  10. /* harmony import */ var _ksp_image_cutter_vue_vue_type_template_id_4e360878_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ksp-image-cutter.vue?vue&type=template&id=4e360878&scoped=true& */ 1062);
  11. /* harmony import */ var _ksp_image_cutter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ksp-image-cutter.vue?vue&type=script&lang=js& */ 1064);
  12. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _ksp_image_cutter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _ksp_image_cutter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  13. /* harmony import */ var _ksp_image_cutter_vue_vue_type_style_index_0_id_4e360878_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ksp-image-cutter.vue?vue&type=style&index=0&id=4e360878&scoped=true&lang=css& */ 1066);
  14. /* harmony import */ var _G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 32);
  15. var renderjs
  16. /* normalize component */
  17. var component = Object(_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  18. _ksp_image_cutter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  19. _ksp_image_cutter_vue_vue_type_template_id_4e360878_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  20. _ksp_image_cutter_vue_vue_type_template_id_4e360878_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  21. false,
  22. null,
  23. "4e360878",
  24. null,
  25. false,
  26. _ksp_image_cutter_vue_vue_type_template_id_4e360878_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
  27. renderjs
  28. )
  29. component.options.__file = "components/ksp-image-cutter/ksp-image-cutter.vue"
  30. /* harmony default export */ __webpack_exports__["default"] = (component.exports);
  31. /***/ }),
  32. /***/ 1062:
  33. /*!*************************************************************************************************************************!*\
  34. !*** E:/project/bigdata_WX/components/ksp-image-cutter/ksp-image-cutter.vue?vue&type=template&id=4e360878&scoped=true& ***!
  35. \*************************************************************************************************************************/
  36. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  37. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  38. "use strict";
  39. __webpack_require__.r(__webpack_exports__);
  40. /* harmony import */ var _G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_template_id_4e360878_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./ksp-image-cutter.vue?vue&type=template&id=4e360878&scoped=true& */ 1063);
  41. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_template_id_4e360878_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
  42. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_template_id_4e360878_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  43. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_template_id_4e360878_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  44. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_template_id_4e360878_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
  45. /***/ }),
  46. /***/ 1063:
  47. /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  48. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!E:/project/bigdata_WX/components/ksp-image-cutter/ksp-image-cutter.vue?vue&type=template&id=4e360878&scoped=true& ***!
  49. \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  50. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  51. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  52. "use strict";
  53. __webpack_require__.r(__webpack_exports__);
  54. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  55. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  56. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  57. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  58. var components
  59. var render = function () {
  60. var _vm = this
  61. var _h = _vm.$createElement
  62. var _c = _vm._self._c || _h
  63. }
  64. var recyclableRender = false
  65. var staticRenderFns = []
  66. render._withStripped = true
  67. /***/ }),
  68. /***/ 1064:
  69. /*!*******************************************************************************************************!*\
  70. !*** E:/project/bigdata_WX/components/ksp-image-cutter/ksp-image-cutter.vue?vue&type=script&lang=js& ***!
  71. \*******************************************************************************************************/
  72. /*! no static exports found */
  73. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  74. "use strict";
  75. __webpack_require__.r(__webpack_exports__);
  76. /* harmony import */ var _G_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./ksp-image-cutter.vue?vue&type=script&lang=js& */ 1065);
  77. /* harmony import */ var _G_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_G_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
  78. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _G_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _G_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  79. /* harmony default export */ __webpack_exports__["default"] = (_G_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
  80. /***/ }),
  81. /***/ 1065:
  82. /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  83. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!E:/project/bigdata_WX/components/ksp-image-cutter/ksp-image-cutter.vue?vue&type=script&lang=js& ***!
  84. \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  85. /*! no static exports found */
  86. /***/ (function(module, exports, __webpack_require__) {
  87. "use strict";
  88. /* WEBPACK VAR INJECTION */(function(uni) {
  89. Object.defineProperty(exports, "__esModule", {
  90. value: true
  91. });
  92. exports.default = void 0;
  93. //
  94. //
  95. //
  96. //
  97. //
  98. //
  99. //
  100. //
  101. //
  102. //
  103. //
  104. //
  105. //
  106. //
  107. //
  108. //
  109. //
  110. //
  111. //
  112. //
  113. //
  114. //
  115. //
  116. //
  117. //
  118. //
  119. //
  120. //
  121. //
  122. //
  123. //
  124. //
  125. var _default = {
  126. props: {
  127. url: {
  128. type: String,
  129. default: ""
  130. },
  131. fixed: {
  132. type: Boolean,
  133. default: false
  134. },
  135. width: {
  136. type: Number,
  137. default: 200
  138. },
  139. height: {
  140. type: Number,
  141. default: 200
  142. },
  143. maxWidth: {
  144. type: Number,
  145. default: 1024
  146. },
  147. maxHeight: {
  148. type: Number,
  149. default: 1024
  150. },
  151. blob: {
  152. type: Boolean,
  153. default: true
  154. }
  155. },
  156. data: function data() {
  157. return {
  158. mask: {
  159. show: false
  160. },
  161. frame: {
  162. left: 50,
  163. top: 50,
  164. width: this.width,
  165. height: this.height
  166. },
  167. image: {
  168. left: 20,
  169. top: 20,
  170. width: 300,
  171. height: 400
  172. },
  173. real: {
  174. width: 100,
  175. height: 100
  176. },
  177. target: {
  178. width: this.width,
  179. height: this.height
  180. },
  181. touches: [],
  182. type: "",
  183. start: {
  184. frame: {
  185. left: 0,
  186. top: 0,
  187. width: 0,
  188. height: 0
  189. },
  190. image: {
  191. left: 0,
  192. top: 0,
  193. width: 0,
  194. height: 0
  195. }
  196. },
  197. timeoutId: -1,
  198. context: null
  199. };
  200. },
  201. mounted: function mounted() {
  202. this.context = uni.createCanvasContext("canvas", this);
  203. this.targetContext = uni.createCanvasContext("target", this);
  204. },
  205. methods: {
  206. imageLoad: function imageLoad(ev) {
  207. var _this = this;
  208. this.mask.show = true;
  209. this.real.width = ev.detail.width;
  210. this.real.height = ev.detail.height;
  211. this.image.width = ev.detail.width;
  212. this.image.height = ev.detail.height;
  213. this.frame.width = this.width;
  214. this.frame.height = this.height;
  215. if (!this.fixed) {
  216. this.frame.width = this.image.width;
  217. this.frame.height = this.image.height;
  218. }
  219. var query = uni.createSelectorQuery().in(this);
  220. query.select(".body").boundingClientRect(function (data) {
  221. var bw = data.width;
  222. var bh = data.height;
  223. var fw = _this.frame.width;
  224. var fh = _this.frame.height;
  225. var tw = bw * 0.8;
  226. var th = bh * 0.8;
  227. var sx = tw / fw;
  228. var sy = th / fh;
  229. var scale = sx;
  230. if (sx < sy) {
  231. scale = sy;
  232. }
  233. tw = fw * scale;
  234. th = fh * scale;
  235. var tx = (bw - tw) / 2;
  236. var ty = (bh - th) / 2;
  237. _this.frame.width = tw;
  238. _this.frame.height = th;
  239. _this.frame.left = tx;
  240. _this.frame.top = ty;
  241. var iw = _this.image.width;
  242. var ih = _this.image.height;
  243. sx = tw / iw;
  244. sy = th / ih;
  245. scale = sx;
  246. if (sx < sy) {
  247. scale = sy;
  248. }
  249. _this.image.width = iw * scale;
  250. _this.image.height = ih * scale;
  251. _this.image.left = (bw - _this.image.width) / 2;
  252. _this.image.top = (bh - _this.image.height) / 2;
  253. setTimeout(function () {
  254. _this.trimImage();
  255. }, 100);
  256. }).exec();
  257. },
  258. touchHandle: function touchHandle() {},
  259. touchStart: function touchStart(ev, type) {
  260. this.stopTime();
  261. this.mask.show = false;
  262. if (this.touches.length == 0) {
  263. this.type = type;
  264. this.start.frame.left = this.frame.left;
  265. this.start.frame.top = this.frame.top;
  266. this.start.frame.width = this.frame.width;
  267. this.start.frame.height = this.frame.height;
  268. this.start.image.left = this.image.left;
  269. this.start.image.top = this.image.top;
  270. this.start.image.width = this.image.width;
  271. this.start.image.height = this.image.height;
  272. }
  273. var touches = ev.changedTouches;
  274. for (var i = 0; i < touches.length; i++) {
  275. var touch = touches[i];
  276. // this.touches[touch.identifier] = touch;
  277. this.touches.push(touch);
  278. }
  279. },
  280. touchMove: function touchMove(ev) {
  281. this.stopTime();
  282. ev.preventDefault();
  283. var touches = ev.touches;
  284. if (this.touches.length == 1) {
  285. if (this.type == "plank" || this.type == "frame" || this.fixed) {
  286. this.moveImage(this.touches[0], touches[0]);
  287. } else {
  288. this.scaleFrame(this.touches[0], touches[0], this.type);
  289. }
  290. } else if (this.touches.length == 2 && touches.length == 2) {
  291. var ta = this.touches[0];
  292. var tb = this.touches[1];
  293. var tc = touches[0];
  294. var td = touches[1];
  295. if (ta.identifier != tc.identifier) {
  296. var temp = tc;
  297. tc = td;
  298. td = temp;
  299. }
  300. this.scaleImage(ta, tb, tc, td);
  301. }
  302. },
  303. touchEnd: function touchEnd(ev) {
  304. this.type = "";
  305. this.touches = [];
  306. this.startTime();
  307. },
  308. touchCancel: function touchCancel(ev) {
  309. this.type = "";
  310. this.touches = [];
  311. this.startTime();
  312. },
  313. startTime: function startTime() {
  314. var _this2 = this;
  315. this.stopTime();
  316. this.timeoutId = setTimeout(function () {
  317. _this2.trimImage();
  318. }, 800);
  319. },
  320. stopTime: function stopTime() {
  321. if (this.timeoutId >= 0) {
  322. clearTimeout(this.timeoutId);
  323. this.timeoutId = -1;
  324. }
  325. },
  326. trimImage: function trimImage() {
  327. var _this3 = this;
  328. this.mask.show = true;
  329. var query = uni.createSelectorQuery().in(this);
  330. query.select(".body").boundingClientRect(function (data) {
  331. var bw = data.width;
  332. var bh = data.height;
  333. var fw = _this3.frame.width;
  334. var fh = _this3.frame.height;
  335. var tw = bw * 0.8;
  336. var th = bh * 0.8;
  337. var sx = tw / fw;
  338. var sy = th / fh;
  339. var scale = sx;
  340. if (sx > sy) {
  341. scale = sy;
  342. }
  343. tw = fw * scale;
  344. th = fh * scale;
  345. var tx = (bw - tw) / 2;
  346. var ty = (bh - th) / 2;
  347. var ax = tx - _this3.frame.left + (_this3.frame.left - _this3.image.left) * (1 - scale);
  348. var ay = ty - _this3.frame.top + (_this3.frame.top - _this3.image.top) * (1 - scale);
  349. _this3.frame.width = tw;
  350. _this3.frame.height = th;
  351. _this3.frame.left = tx;
  352. _this3.frame.top = ty;
  353. _this3.image.width *= scale;
  354. _this3.image.height *= scale;
  355. _this3.image.left += ax;
  356. _this3.image.top += ay;
  357. }).exec();
  358. setTimeout(function () {
  359. var scale = _this3.image.width / _this3.real.width;
  360. var x = (_this3.frame.left - _this3.image.left) / scale;
  361. var y = (_this3.frame.top - _this3.image.top) / scale;
  362. var width = _this3.frame.width / scale;
  363. var height = _this3.frame.height / scale;
  364. _this3.context.drawImage(_this3.url, x, y, width, height, 0, 0, _this3.frame.width, _this3.frame.height);
  365. _this3.context.draw(false);
  366. }, 100);
  367. },
  368. moveImage: function moveImage(ta, tb) {
  369. var ax = tb.clientX - ta.clientX;
  370. var ay = tb.clientY - ta.clientY;
  371. this.image.left = this.start.image.left + ax;
  372. this.image.top = this.start.image.top + ay;
  373. if (this.image.left > this.frame.left) {
  374. this.image.left = this.frame.left;
  375. }
  376. if (this.image.top > this.frame.top) {
  377. this.image.top = this.frame.top;
  378. }
  379. if (this.image.left + this.image.width < this.frame.left + this.frame.width) {
  380. this.image.left = this.frame.left + this.frame.width - this.image.width;
  381. }
  382. if (this.image.top + this.image.height < this.frame.top + this.frame.height) {
  383. this.image.top = this.frame.top + this.frame.height - this.image.height;
  384. }
  385. },
  386. scaleImage: function scaleImage(ta, tb, tc, td) {
  387. var x1 = ta.clientX;
  388. var y1 = ta.clientY;
  389. var x2 = tb.clientX;
  390. var y2 = tb.clientY;
  391. var x3 = tc.clientX;
  392. var y3 = tc.clientY;
  393. var x4 = td.clientX;
  394. var y4 = td.clientY;
  395. var ol = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
  396. var el = Math.sqrt((x3 - x4) * (x3 - x4) + (y3 - y4) * (y3 - y4));
  397. var ocx = (x1 + x2) / 2;
  398. var ocy = (y1 + y2) / 2;
  399. var ecx = (x3 + x4) / 2;
  400. var ecy = (y3 + y4) / 2;
  401. var ax = ecx - ocx;
  402. var ay = ecy - ocy;
  403. var scale = el / ol;
  404. if (this.start.image.width * scale < this.frame.width) {
  405. scale = this.frame.width / this.start.image.width;
  406. }
  407. if (this.start.image.height * scale < this.frame.height) {
  408. scale = this.frame.height / this.start.image.height;
  409. }
  410. if (this.start.image.width * scale < this.frame.width) {
  411. scale = this.frame.width / this.start.image.width;
  412. }
  413. this.image.left = this.start.image.left + ax - (ocx - this.start.image.left) * (scale - 1);
  414. this.image.top = this.start.image.top + ay - (ocy - this.start.image.top) * (scale - 1);
  415. this.image.width = this.start.image.width * scale;
  416. this.image.height = this.start.image.height * scale;
  417. if (this.image.left > this.frame.left) {
  418. this.image.left = this.frame.left;
  419. }
  420. if (this.image.top > this.frame.top) {
  421. this.image.top = this.frame.top;
  422. }
  423. if (this.image.left + this.image.width < this.frame.left + this.frame.width) {
  424. this.image.left = this.frame.left + this.frame.width - this.image.width;
  425. }
  426. if (this.image.top + this.image.height < this.frame.top + this.frame.height) {
  427. this.image.top = this.frame.top + this.frame.height - this.image.height;
  428. }
  429. },
  430. scaleFrame: function scaleFrame(ta, tb, type) {
  431. var ax = tb.clientX - ta.clientX;
  432. var ay = tb.clientY - ta.clientY;
  433. var x1 = this.start.frame.left;
  434. var y1 = this.start.frame.top;
  435. var x2 = this.start.frame.left + this.start.frame.width;
  436. var y2 = this.start.frame.top + this.start.frame.height;
  437. if (type == "left") {
  438. x1 += ax;
  439. } else if (type == "right") {
  440. x2 += ax;
  441. } else if (type == "top") {
  442. y1 += ay;
  443. } else if (type == "bottom") {
  444. y2 += ay;
  445. } else if (type == "left-top") {
  446. x1 += ax;
  447. y1 += ay;
  448. } else if (type == "left-bottom") {
  449. x1 += ax;
  450. y2 += ay;
  451. } else if (type == "right-top") {
  452. x2 += ax;
  453. y1 += ay;
  454. } else if (type == "right-bottom") {
  455. x2 += ax;
  456. y2 += ay;
  457. }
  458. if (x1 < this.image.left) {
  459. x1 = this.image.left;
  460. }
  461. if (y1 < this.image.top) {
  462. y1 = this.image.top;
  463. }
  464. if (x2 > this.image.left + this.image.width) {
  465. x2 = this.image.left + this.image.width;
  466. }
  467. if (y2 > this.image.top + this.image.height) {
  468. y2 = this.image.top + this.image.height;
  469. }
  470. this.frame.left = x1;
  471. this.frame.top = y1;
  472. this.frame.width = x2 - x1;
  473. this.frame.height = y2 - y1;
  474. },
  475. parseBlob: function parseBlob(base64) {
  476. var arr = base64.split(',');
  477. var mime = arr[0].match(/:(.*?);/)[1];
  478. var bstr = atob(arr[1]);
  479. var n = bstr.length;
  480. var u8arr = new Uint8Array(n);
  481. for (var i = 0; i < n; i++) {
  482. u8arr[i] = bstr.charCodeAt(i);
  483. }
  484. var url = URL || webkitURL;
  485. return url.createObjectURL(new Blob([u8arr], {
  486. type: mime
  487. }));
  488. },
  489. onok: function onok() {
  490. var _this4 = this;
  491. var scale = this.image.width / this.real.width;
  492. var x = (this.frame.left - this.image.left) / scale;
  493. var y = (this.frame.top - this.image.top) / scale;
  494. var width = this.frame.width / scale;
  495. var height = this.frame.height / scale;
  496. var tw = width;
  497. var th = height;
  498. if (this.fixed) {
  499. tw = this.width / 2;
  500. th = this.height / 2;
  501. } else {
  502. if (tw > this.maxWidth / 2) {
  503. var sc = this.maxWidth / 2 / tw;
  504. tw = tw * sc;
  505. th = th * sc;
  506. }
  507. if (th > this.maxHeight / 2) {
  508. var sc = this.maxHeight / 2 / th;
  509. th = th * sc;
  510. tw = tw * sc;
  511. }
  512. }
  513. this.target.width = tw;
  514. this.target.height = th;
  515. uni.showLoading({
  516. title: "正在裁剪"
  517. });
  518. setTimeout(function () {
  519. _this4.targetContext.drawImage(_this4.url, x, y, width, height, 0, 0, tw, th);
  520. _this4.targetContext.draw(false, function () {
  521. uni.canvasToTempFilePath({
  522. canvasId: "target",
  523. success: function success(res) {
  524. var path = res.tempFilePath;
  525. _this4.$emit("ok", {
  526. path: path
  527. });
  528. },
  529. fail: function fail(ev) {
  530. console.log(ev);
  531. },
  532. complete: function complete() {
  533. uni.hideLoading();
  534. }
  535. }, _this4);
  536. });
  537. }, 100);
  538. },
  539. oncancle: function oncancle() {
  540. this.$emit("cancel");
  541. }
  542. }
  543. };
  544. exports.default = _default;
  545. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
  546. /***/ }),
  547. /***/ 1066:
  548. /*!***************************************************************************************************************************************!*\
  549. !*** E:/project/bigdata_WX/components/ksp-image-cutter/ksp-image-cutter.vue?vue&type=style&index=0&id=4e360878&scoped=true&lang=css& ***!
  550. \***************************************************************************************************************************************/
  551. /*! no static exports found */
  552. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  553. "use strict";
  554. __webpack_require__.r(__webpack_exports__);
  555. /* harmony import */ var _G_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_G_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_G_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_style_index_0_id_4e360878_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./ksp-image-cutter.vue?vue&type=style&index=0&id=4e360878&scoped=true&lang=css& */ 1067);
  556. /* harmony import */ var _G_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_G_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_G_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_style_index_0_id_4e360878_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_G_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_G_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_G_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_style_index_0_id_4e360878_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
  557. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _G_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_G_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_G_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_style_index_0_id_4e360878_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _G_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_G_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_G_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_style_index_0_id_4e360878_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  558. /* harmony default export */ __webpack_exports__["default"] = (_G_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_G_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_G_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_G_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_ksp_image_cutter_vue_vue_type_style_index_0_id_4e360878_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
  559. /***/ }),
  560. /***/ 1067:
  561. /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  562. !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!E:/project/bigdata_WX/components/ksp-image-cutter/ksp-image-cutter.vue?vue&type=style&index=0&id=4e360878&scoped=true&lang=css& ***!
  563. \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  564. /*! no static exports found */
  565. /***/ (function(module, exports, __webpack_require__) {
  566. // extracted by mini-css-extract-plugin
  567. if(false) { var cssReload; }
  568. /***/ })
  569. }]);
  570. //# sourceMappingURL=../../../.sourcemap/mp-weixin/components/ksp-image-cutter/ksp-image-cutter.js.map
  571. ;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
  572. 'components/ksp-image-cutter/ksp-image-cutter-create-component',
  573. {
  574. 'components/ksp-image-cutter/ksp-image-cutter-create-component':(function(module, exports, __webpack_require__){
  575. __webpack_require__('2')['createComponent'](__webpack_require__(1061))
  576. })
  577. },
  578. [['components/ksp-image-cutter/ksp-image-cutter-create-component']]
  579. ]);