欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Vue2.0實(shí)現(xiàn)調(diào)用攝像頭進(jìn)行拍照功能exif.js實(shí)現(xiàn)圖片上傳功能-創(chuàng)新互聯(lián)

本文實(shí)例為大家分享了Vue2.0實(shí)現(xiàn)調(diào)用攝像頭進(jìn)行拍照功能的具體代碼,以及圖片上傳功能引用exif.js,供大家參考,具體內(nèi)容如下

目前成都創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、福清網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

可以在github 上下載demo鏈接

vue組件代碼

<template>
 <div>
 <div >
  <div class="show">
  <div class="picture" :></div>
  </div>
  <div >
  <input type="file" id="upload" accept="image/jpg" @change="upload">
  <label for="upload"></label>
  </div>
 </div>
 </div>
</template>

<script>
import {Exif} from './exif.js'

export default {
 data () {
 return {
  headerImage:'',picValue:''
 }
 },
 mounted () {
 },
 methods: {
 upload (e) {
  let files = e.target.files || e.dataTransfer.files;
  if (!files.length) return;
  this.picValue = files[0];
  this.imgPreview(this.picValue);
  console.log(this.picValue)
 },
 imgPreview (file) {
  let self = this;
  let Orientation;
  //去獲取拍照時(shí)的信息,解決拍出來(lái)的照片旋轉(zhuǎn)問(wèn)題
  Exif.getData(file, function(){
   Orientation = Exif.getTag(this, 'Orientation');
  });
  // 看支持不支持FileReader 
  if (!file || !window.FileReader) return;

  if (/^image/.test(file.type)) {
   // 創(chuàng)建一個(gè)reader
   let reader = new FileReader();
   // 將圖片2將轉(zhuǎn)成 base64 格式
   reader.readAsDataURL(file);
   // 讀取成功后的回調(diào)
   reader.onloadend = function () {
   let result = this.result;
   let img = new Image();
   img.src = result;
   //判斷圖片是否大于100K,是就直接上傳,反之壓縮圖片
   if (this.result.length <= (100 * 1024)) {
    self.headerImage = this.result;
    self.postImg();
   }else {
    img.onload = function () {
    let data = self.compress(img,Orientation);
    self.headerImage = data;
    self.postImg();
    }
   }
   }
  }
  },
  postImg () {
  //這里寫(xiě)接口
  },
  rotateImg (img, direction,canvas) {
  //最小與大旋轉(zhuǎn)方向,圖片旋轉(zhuǎn)4次后回到原方向
  const min_step = 0;
  const max_step = 3;
  if (img == null)return;
  //img的高度和寬度不能在img元素隱藏后獲取,否則會(huì)出錯(cuò)
  let height = img.height;
  let width = img.width;
  let step = 2;
  if (step == null) {
   step = min_step;
  }
  if (direction == 'right') {
   step++;
   //旋轉(zhuǎn)到原位置,即超過(guò)大值
   step > max_step && (step = min_step);
  } else {
   step--;
   step < min_step && (step = max_step);
  }
  //旋轉(zhuǎn)角度以弧度值為參數(shù)
  let degree = step * 90 * Math.PI / 180;
  let ctx = canvas.getContext('2d');
  switch (step) {
   case 0:
    canvas.width = width;
    canvas.height = height;
    ctx.drawImage(img, 0, 0);
    break;
   case 1:
    canvas.width = height;
    canvas.height = width;
    ctx.rotate(degree);
    ctx.drawImage(img, 0, -height);
    break;
   case 2:
    canvas.width = width;
    canvas.height = height;
    ctx.rotate(degree);
    ctx.drawImage(img, -width, -height);
    break;
   case 3:
    canvas.width = height;
    canvas.height = width;
    ctx.rotate(degree);
    ctx.drawImage(img, -width, 0);
    break;
  }
 },
 compress(img,Orientation) {
  let canvas = document.createElement("canvas");
  let ctx = canvas.getContext('2d');
  //瓦片canvas
  let tCanvas = document.createElement("canvas");
  let tctx = tCanvas.getContext("2d");
  let initSize = img.src.length;
  let width = img.width;
  let height = img.height;
  //如果圖片大于四百萬(wàn)像素,計(jì)算壓縮比并將大小壓至400萬(wàn)以下
  let ratio;
  if ((ratio = width * height / 4000000) > 1) {
  console.log("大于400萬(wàn)像素")
  ratio = Math.sqrt(ratio);
  width /= ratio;
  height /= ratio;
  } else {
  ratio = 1;
  }
  canvas.width = width;
  canvas.height = height;
 //  鋪底色
  ctx.fillStyle = "#fff";
  ctx.fillRect(0, 0, canvas.width, canvas.height);
  //如果圖片像素大于100萬(wàn)則使用瓦片繪制
  let count;
  if ((count = width * height / 1000000) > 1) {
  console.log("超過(guò)100W像素");
  count = ~~(Math.sqrt(count) + 1); //計(jì)算要分成多少塊瓦片
 //   計(jì)算每塊瓦片的寬和高
  let nw = ~~(width / count);
  let nh = ~~(height / count);
  tCanvas.width = nw;
  tCanvas.height = nh;
  for (let i = 0; i < count; i++) {
   for (let j = 0; j < count; j++) {
   tctx.drawImage(img, i * nw * ratio, j * nh * ratio, nw * ratio, nh * ratio, 0, 0, nw, nh);
   ctx.drawImage(tCanvas, i * nw, j * nh, nw, nh);
   }
  }
  } else {
  ctx.drawImage(img, 0, 0, width, height);
  }
  //修復(fù)ios上傳圖片的時(shí)候 被旋轉(zhuǎn)的問(wèn)題
  if(Orientation != "" && Orientation != 1){
  switch(Orientation){
   case 6://需要順時(shí)針(向左)90度旋轉(zhuǎn)
    this.rotateImg(img,'left',canvas);
    break;
   case 8://需要逆時(shí)針(向右)90度旋轉(zhuǎn)
    this.rotateImg(img,'right',canvas);
    break;
   case 3://需要180度旋轉(zhuǎn)
    this.rotateImg(img,'right',canvas);//轉(zhuǎn)兩次
    this.rotateImg(img,'right',canvas);
    break;
  }
  }
  //進(jìn)行最小壓縮
  let ndata = canvas.toDataURL('image/jpeg', 0.1);
  console.log('壓縮前:' + initSize);
  console.log('壓縮后:' + ndata.length);
  console.log('壓縮率:' + ~~(100 * (initSize - ndata.length) / initSize) + "%");
  tCanvas.width = tCanvas.height = canvas.width = canvas.height = 0;
  return ndata;
 },
 }
}
</script>

<style>
*{
 margin: 0;
 padding: 0;
}
.show {
 width: 100px;
 height: 100px;
 overflow: hidden;
 position: relative;
 border-radius: 50%;
 border: 1px solid #d5d5d5;
}
.picture {
 width: 100%;
 height: 100%;
 overflow: hidden;
 background-position: center center;
 background-repeat: no-repeat;
 background-size: cover;
}
</style>

網(wǎng)站題目:Vue2.0實(shí)現(xiàn)調(diào)用攝像頭進(jìn)行拍照功能exif.js實(shí)現(xiàn)圖片上傳功能-創(chuàng)新互聯(lián)
URL標(biāo)題:http://aaarwkj.com/article18/dddhgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)Google、小程序開(kāi)發(fā)網(wǎng)站策劃、網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
国产亚洲精品国产福利久久| 性生活视频在线观看免费| 欧美日韩国产另类在线视频| 麻豆av永久地址久久精品| 国产精品美女露脸av毛片| 国产精品夫妇在线激情啪| 成人午夜欧美熟妇小视频| 肉肉开房天天操夜夜操| 欧美性大片一区二区三区| 亚洲大乳大丰满中文字幕| 欧美日韩亚洲精品三级| 欧美日韩国产天天干| 亚洲精品第一国产综合| 国产乱人伦真实精品视频| 久久香蕉国产线看观看av| 亚洲午夜福利理论片在线| 亚洲福利一区二区在线| 日本的黄色录像一级带| 日韩成人大片在线播放| 亚洲天堂中文字幕麻豆| 亚洲1区2区中文字幕| 自偷自拍亚洲综合精品| 国产精品亚洲二区三区三州| 女同伦理视频在线观看| 在线看黄色片播放器日韩| 国产片精品一区在线观看| 最新欧美精品一区二区| 天堂av在线一区二区三区| 亚洲乱码中文字幕人妻| 国产精品久久99精品| 一区二区日韩视频九一蜜桃| 好吊精品视频在线观看| 国产91黑丝在线视频| 国产亚洲精品a久久7777| 91精品国产自产在线蜜臀| 久久精品资源综合网| 18禁污污网站国产| 日本韩国欧美成人精品| 国产姐弟操大率悠荡笕| 91九色国产在线播放| 成人av资源在线观看|