最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用Vue.js在瀏覽器中實現(xiàn)裁剪圖像功能

 更新時間:2019年06月18日 08:36:16   作者:瘋狂的技術宅  
在本教程中,我們將探討如何在瀏覽器中使用 JavaScript 庫來操作圖片,為服務器上的存儲做準備,并在 Web 程序中使用。我們將使用 Vue.js 而不是原生 JavaScript來完成此操作,需要的朋友可以參考下

你是否寫了一個需要接受用戶上傳圖片的 Web 應用,后來才意識到用戶總是提供各種形狀和大小的圖像來破壞你的網(wǎng)站主題?在網(wǎng)絡上處理圖像很容易成為一種痛苦 —— 當然,除非你使用了正確的工具。

在本教程中,我們將探討如何在瀏覽器中使用 JavaScript 庫來操作圖片,為服務器上的存儲做準備,并在 Web 程序中使用。我們將使用 Vue.js 而不是原生 JavaScript來完成此操作。

要了本文想要完成的任務,請查看上面的圖片。左側是原始圖像,右側是新圖像預覽。我們可以移動裁剪框并調(diào)整其大小,預覽圖像也會隨之改變。用戶可以根據(jù)需要下載預覽圖像。

我們將用名為 Cropper.js 【 https://fengyuanchen.github.io/cropperjs/ 】的庫完成繁重的工作。

使用圖像裁剪依賴項創(chuàng)建一個新的Vue.js項目

第一步是創(chuàng)建一個新項目并安裝必要的依賴項。假設你已安裝并配置了Vue CLI

https://fengyuanchen.github.io/cropperjs/ 】。

在命令行下執(zhí)行以下命令:

vue create cropper-project

出現(xiàn)提示時,選擇默認選項。這將是一個簡單的項目,所以不必要擔心路由和其它一些東西。

導航到新項目并執(zhí)行以下操作:

npm install cropperjs --save

上面的命令會將 Cropper.js 安裝到我們的項目中。可以很容易地使用CDN,但因為我們使用的是利用 webpack 的框架,所以 npm 路由最有意義。

雖然安裝了我們的依賴項,但還有一件事需要去做。因為用的是 npm,所以不包含CSS信息 —— 只包含 JavaScript 信息。我們需要在本地或通過 CDN 包含 CSS信 息。本文使用CDN。

打開項目的 public/index.html 并包含以下 HTML 標記:

<!DOCTYPE html>
 <html lang="en">
   <head>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="icon" href="<%= BASE_URL %>favicon.ico" rel="external nofollow" >
     <title>image-cropping</title>
     <link rel="stylesheet" >
  </head>
  <body>
    <noscript>
      <strong>We're sorry but image-cropping doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

請注意,在 <head> 標記中,我們包含了 cropper.min.css 文件。同樣,只要你得到這個文件,如何獲得CSS信息并不重要。如果沒有 CSS 信息,我們的圖像就不會有花哨的裁剪框。

在Vue.js項目中使用JavaScript裁剪圖像

現(xiàn)在項目應該幾乎已配置好并可以在網(wǎng)絡上裁剪圖像。為了保持我們的項目整潔,我們將創(chuàng)建一個新的Vue.js組件來處理我們所有的圖像處理。

在項目中創(chuàng)建 src/components/ImageCropper.vue 文件,并包含以下樣板代碼: 

<template>
   <div>
     <div class="img-container">
       <img ref="image" :src="src" crossorigin>
     </div>
     <img :src="destination" class="img-preview">
   </div>
 </template>

<script>
  import Cropper from "cropperjs";
  export default {
    name: "ImageCropper",
    data() {
      return {
        cropper: {},
        destination: {},
        image: {}
      }
    },
    props: {
      src: String
    },
    mounted() { }
  }
</script>

<style scoped>
  .img-container {
    width: 640px;
    height: 480px;
    float: left;
  }
  .img-preview {
    width: 200px;
    height: 200px;
    float: left;
    margin-left: 10px;
  }
</style>

對于這個例子, <style> 標簽的信息并不重要,它只是清理了頁面,并沒有從庫中獲得任何實際效果。

記下 <template> 塊中出現(xiàn)的 src 和 destination 變量。這些變量表示用戶通過 props 對象定義的源圖像,以及已經(jīng)被操作的目標圖像。我們將能夠通過 ref 變量直接訪問源圖像,這類似于在 DOM 對象上使用 querySelector 。

雖然我們已經(jīng)為裁剪圖像做好了準備,但實際上并沒有對它們做任何事情。我們將在 mounted 方法中配置 cropping 處理和事件,該方法將在視圖初始化后觸發(fā)。

mounted 方法看起來像這樣:

 mounted() {
   this.image = this.$refs.image;
   this.cropper = new Cropper(this.image, {
     zoomable: false,
     scalable: false,
     aspectRatio: 1,
     crop: () => {
       const canvas = this.cropper.getCroppedCanvas();
       this.destination = canvas.toDataURL("image/png");
    }
  });
}

調(diào)用該方法時,我們獲得了對 <template> 塊中的圖像的引用。然后在初始化裁剪工具時使用圖像,同時定義一些配置,這些配置并不是強制性的。

crop 方法是發(fā)生奇跡的地方。每當我們處理圖像時,都會調(diào)用這個 crop 方法。當執(zhí)行 crop 方法時,我們應該能夠獲取裁剪、縮放等信息,并從中創(chuàng)建新圖像 —— 即目標圖像。

這時我們已經(jīng)創(chuàng)建了組件但尚未使用它。

打開項目的 src/App.vue 文件并包含以下內(nèi)容:

<template>
   <div id="app">
     <ImageCropper src="/logo.png" />
  </div>
 </template>
 <script>
   import ImageCropper from "./components/ImageCropper.vue"
   export default {
    name: "app",
    components: {
      ImageCropper
    }
  }
</script>
<style></style>

請注意,我們已經(jīng)導入了 ImageCropper 組件,并在 <template> 塊中使用它。請記住, src 屬性是 JavaScript 中的 props 之一。在我的示例中,有一個 public/logo.png 文件,你可以根據(jù)需要隨意修改它。在真實的場景中,你會使用用戶將要上傳的圖像。

如果你想了解如何上傳文件(如裁剪圖像),可以查看我之前的教程“通過 Vue.js 將文件上傳到遠程Web服務”

https://www.thepolyglotdeveloper.com/2017/12/upload-files-remote-web-service-vuejs-web-application/ 】。

結論

本文講解了如何使用 Vue.js Web 程序中的 Cropper.js 庫來操作圖像。如果你需要接受來自用戶的圖像,并將其用作個人資料或類似內(nèi)容的一部分,這非常有用,因為你需要將這些圖片調(diào)整為一致的大小,這樣你的主題才不會被破壞。

使用圖像裁剪庫與使用原生 JavaScript 的方式?jīng)]什么不同,但是有一些事情需要用 Vue.js 與 HTML 組件進行交互。

以上所述是小編給大家介紹的用Vue.js在瀏覽器中裁剪圖像功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

相關文章

  • vue動態(tài)禁用控件綁定disable的例子

    vue動態(tài)禁用控件綁定disable的例子

    今天小編就為大家分享一篇vue動態(tài)禁用控件綁定disable的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Vue props 單向數(shù)據(jù)流的實現(xiàn)

    Vue props 單向數(shù)據(jù)流的實現(xiàn)

    這篇文章主要介紹了Vue props 單向數(shù)據(jù)流的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • vue+elementUI實現(xiàn)點擊左右箭頭切換按鈕功能

    vue+elementUI實現(xiàn)點擊左右箭頭切換按鈕功能

    這篇文章主要介紹了vue+elementUI實現(xiàn)點擊左右箭頭切換按鈕功能,樣式可以根據(jù)自己需求改動,感興趣的朋友可以參考下實現(xiàn)代碼
    2024-05-05
  • vue項目接口訪問地址設置方式

    vue項目接口訪問地址設置方式

    這篇文章主要介紹了vue項目接口訪問地址設置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 基于vue實現(xiàn)分頁效果

    基于vue實現(xiàn)分頁效果

    這篇文章主要介紹了基于vue實現(xiàn)分頁效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • vue3中7種路由守衛(wèi)的使用大全舉例

    vue3中7種路由守衛(wèi)的使用大全舉例

    最近在學習vue,感覺路由守衛(wèi)這個地方知識點挺多的,而且很重要,下面這篇文章主要給大家介紹了關于vue3中7種路由守衛(wèi)的使用大全,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • 詳解如何在Vue項目中導出Excel

    詳解如何在Vue項目中導出Excel

    這篇文章主要介紹了如何在Vue項目中導出Excel,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • element?Drawer?抽屜無法渲染問題及解決

    element?Drawer?抽屜無法渲染問題及解決

    這篇文章主要介紹了element?Drawer?抽屜無法渲染問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue2.0+koa2+mongodb實現(xiàn)注冊登錄

    vue2.0+koa2+mongodb實現(xiàn)注冊登錄

    這篇文章主要介紹了vue2.0+koa2+mongodb實現(xiàn)注冊登錄功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • 詳解vue3中如何使用shaka-player

    詳解vue3中如何使用shaka-player

    這篇文章主要為大家介紹了vue3中如何使用shaka-player示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09

最新評論

吉林省| 富蕴县| 陇南市| 神木县| 汾阳市| 手游| 江陵县| 高碑店市| 宁陵县| 进贤县| 鸡泽县| 隆回县| 定兴县| 龙山县| 于田县| 松溪县| 子长县| 宁化县| 永善县| 泰来县| 道真| 重庆市| 镇雄县| 竹溪县| 顺平县| 江源县| 英德市| 萝北县| 朝阳市| 自治县| 奉贤区| 韶关市| 永州市| 鹤壁市| 汉沽区| 马鞍山市| 平利县| 泗阳县| 五华县| 曲阳县| 财经|