校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > H5調(diào)用相機(jī)拍照并壓縮圖片的實(shí)例代碼

H5調(diào)用相機(jī)拍照并壓縮圖片的實(shí)例代碼

熱門(mén)標(biāo)簽:貸款電銷(xiāo)人工和機(jī)器人哪個(gè)好 飛亞外呼系統(tǒng) 電話機(jī)器人如何 杭州營(yíng)銷(xiāo)電銷(xiāo)機(jī)器人供應(yīng)商 聯(lián)通400電話申請(qǐng) 高德地圖標(biāo)注賓館位置 西寧智能外呼系統(tǒng)加盟 百應(yīng)電銷(xiāo)機(jī)器人產(chǎn)業(yè) 電視購(gòu)物電銷(xiāo)外呼系統(tǒng)

整理文檔,搜刮出一個(gè)H5調(diào)用相機(jī)拍照并壓縮圖片的實(shí)例代碼,稍微整理精簡(jiǎn)一下做下分享。

背景

最近要做一個(gè)h5的頁(yè)面,主要功能就是調(diào)用相機(jī)拍照或者是相冊(cè)選圖并且把照片壓縮轉(zhuǎn)base64之后上傳到后臺(tái)服務(wù)器,然后服務(wù)器返回識(shí)別結(jié)果。

前端的主要功能點(diǎn)有:

  1. H5如何調(diào)用相機(jī)
  2. 圖片如何壓縮
  3. 圖片轉(zhuǎn)base64

H5調(diào)用相機(jī)/相冊(cè)

調(diào)用相機(jī)最簡(jiǎn)單的方法就是使用input file[camera]屬性:

<input type="file" capture=camera accept="image/*">//相機(jī)
<input type="file" accept="image/*">//相冊(cè)

這個(gè)種方法兼容性還是有問(wèn)題的,在iphone手機(jī)上可以正常打開(kāi)相機(jī),但是在安卓手機(jī)上點(diǎn)擊之后是相機(jī)、圖庫(kù)、文件管理器等混合選擇項(xiàng)。在網(wǎng)上搜了很多都沒(méi)有什么好的解決辦法,只能繼續(xù)往下寫(xiě)了。。。

圖片壓縮

圖片壓縮就要用到FileReader<canvas>了。

FileReader對(duì)象允許Web應(yīng)用程序異步讀取存儲(chǔ)在計(jì)算機(jī)上的文件的內(nèi)容,使用File或Blob對(duì)象指定要讀取的文件或數(shù)據(jù)。

<canvas>是一個(gè)可以使用腳本在其中繪制圖形的HTML元素,可以繪制圖形和簡(jiǎn)單的動(dòng)畫(huà)。

圖片壓縮要壓縮圖片的分辨率和質(zhì)量,分辨率壓縮我這里是設(shè)置了圖片的最大邊為800,另一邊按照?qǐng)D片原有比例縮放,也可以設(shè)置圖片整體的縮放比例。

var MAX_WH=800;
var image=new Image();
image.onload=function () {
  if(image.height > MAX_WH) {
    // 寬度等比例縮放 *= 
    image.width *= MAX_WH/ image.height;
    image.height = MAX_WH;
  }
  if(image.width > MAX_WH) {
    // 寬度等比例縮放 *= 
    image.height *= MAX_WH/ image.width;
    image.width = MAX_WH;
  }
}
image.src=dataURL;//dataURL通過(guò)FileReader獲取

然后就是壓縮圖片的質(zhì)量了,這里設(shè)置壓縮了80%,如果設(shè)置太小圖片就失真了。動(dòng)態(tài)創(chuàng)建<canvas>標(biāo)簽然后壓縮圖片:

var quality=80;
var cvs = document.createElement('canvas');
cvs.width = image.width;
cvs.heigh = image.height;
var context=cvs.getContext("2d");
context.drawImage(image, 0, 0,image.width, image.height);
dataURL = cvs.toDataURL('image/jpeg', quality/100);

然后就是上傳到服務(wù)器并展示服務(wù)器的結(jié)果啦,然而事情并沒(méi)有那么順利。。。ios手機(jī)拍照壓縮之后圖片莫名的旋轉(zhuǎn)了,繼續(xù)解決問(wèn)題。

解決IOS圖片旋轉(zhuǎn)

首先引用exif.js,通過(guò)EXIF.getData和EXIF.getTag獲取拍照方向信息。

//file通過(guò)input標(biāo)簽獲取
EXIF.getData(file,function(){
  orientation=EXIF.getTag(file,'Orientation');
});

下面給出每個(gè)orientation值對(duì)應(yīng)到iphone手機(jī)拍照的含義:

orientation 描述
3 iphone橫屏拍攝,此時(shí)home鍵在左側(cè),圖片相對(duì)于原始位置旋轉(zhuǎn)了180度
6 iphone豎屏拍攝,此時(shí)home鍵在下方(正常拿手機(jī)的方向),圖片相對(duì)于原始位置逆時(shí)針旋轉(zhuǎn)可90度
8 iphone豎屏拍攝,此時(shí)home鍵在上方,圖片相對(duì)于原始位置順時(shí)針旋轉(zhuǎn)了90度
獲取圖片的方向信息之后,根據(jù)獲取到的值作相應(yīng)的旋轉(zhuǎn)操作。
switch (orientation) {
  case 6:
  case 8:
    cvs.width = height;
    cvs.height = width;
    break;
}
var context=cvs.getContext("2d");
switch(orientation){
  //iphone橫屏拍攝,此時(shí)home鍵在左側(cè)
  case 3:
  // 180度向左旋轉(zhuǎn)
  context.translate(width, height);
  context.rotate(Math.PI);
  break;
  //iphone豎屏拍攝,此時(shí)home鍵在下方(正常拿手機(jī)的方向)
  case 6:
  context.rotate(0.5 * Math.PI);
  context.translate(0, -height);
  break;
  //iphone豎屏拍攝,此時(shí)home鍵在上方
  case 8:
  // 逆時(shí)針旋轉(zhuǎn)90度
  context.rotate(-0.5 * Math.PI);
  context.translate(-width, 0);
  break;
}

然后再上傳圖片,發(fā)現(xiàn)在IOS下圖片已經(jīng)正常了。

下面給出完整代碼:

$('input[type=file]').change(function(e) {
  var file = this.files[0];
  var mime_type=file.type;
  var orientation=0;
  if (file && /^image\//i.test(file.type)) {
    EXIF.getData(file,function(){
      orientation=EXIF.getTag(file,'Orientation');
    });

    var reader = new FileReader();
    reader.onloadend = function () {
      var width,height;
      var MAX_WH=800;
      var image=new Image();
      image.onload=function () {
        if(image.height > MAX_WH) {
          // 寬度等比例縮放 *= 
          image.width *= MAX_WH / image.height;
          image.height = MAX_WH;
        }
        if(image.width > MAX_WH) {
          // 寬度等比例縮放 *= 
          image.height *= MAX_WH / image.width;
          image.width = MAX_WH;
        }
        //壓縮
        var quality=80;
        var cvs = document.createElement('canvas');
        cvs.width = width = image.width;
        cvs.height =height = image.height;

        switch (orientation) {
          case 6:
          case 8:
            cvs.width = height;
            cvs.height = width;
            break;
        }

        var context=cvs.getContext("2d");

        //解決ios圖片旋轉(zhuǎn)問(wèn)題 
        switch(orientation){
          //iphone橫屏拍攝,此時(shí)home鍵在左側(cè)
          case 3:
          // 180度向左旋轉(zhuǎn)
          context.translate(width, height);
          context.rotate(Math.PI);
          break;
          //iphone豎屏拍攝,此時(shí)home鍵在下方(正常拿手機(jī)的方向)
          case 6:
          context.rotate(0.5 * Math.PI);
          context.translate(0, -height);
          break;
          //iphone豎屏拍攝,此時(shí)home鍵在上方
          case 8:
          // 逆時(shí)針旋轉(zhuǎn)90度
          context.rotate(-0.5 * Math.PI);
          context.translate(-width, 0);
          break;
        }
        context.drawImage(image, 0, 0,image.width, image.height);
        dataURL = cvs.toDataURL('image/jpeg', quality/100);
        //獲取識(shí)別結(jié)果
        ...
      }
      image.src=dataURL;
    };
    reader.readAsDataURL(file);
  }else{
    alert("只能識(shí)別圖片!")
  }
});

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:玉溪 安慶 邯鄲 內(nèi)蒙古 撫州 牡丹江 煙臺(tái) 晉中

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《H5調(diào)用相機(jī)拍照并壓縮圖片的實(shí)例代碼》,本文關(guān)鍵詞  調(diào)用,相機(jī),拍照,并,壓縮,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《H5調(diào)用相機(jī)拍照并壓縮圖片的實(shí)例代碼》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于H5調(diào)用相機(jī)拍照并壓縮圖片的實(shí)例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章

    上一篇:HTML5新特性之語(yǔ)義化標(biāo)簽

    下一篇:基于HTML5實(shí)現(xiàn)類(lèi)似微信手機(jī)搖一搖功能(計(jì)算搖動(dòng)次數(shù))

    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲国产一区二区在线播放| 亚洲一区电影777| 欧美国产欧美综合| 无码av免费一区二区三区试看| 成人黄色综合网站| 国产精品网站在线播放| 国产精品一区二区果冻传媒| 久久尤物电影视频在线观看| 美女视频黄免费的久久| 欧美一级在线视频| 五月婷婷综合激情| 日韩一区二区三区四区| 麻豆国产91在线播放| 日韩欧美亚洲国产另类| 久久精品av麻豆的观看方式| 精品国产乱码久久久久久牛牛| 日韩成人精品在线观看| 欧美大片国产精品| 国产99久久精品| 最新久久zyz资源站| 一本色道亚洲精品aⅴ| 亚洲黄色尤物视频| 日韩亚洲国产中文字幕欧美| 国产精品亚洲一区二区三区在线 | 国产欧美综合色| 国产成人av电影在线| 中文幕一区二区三区久久蜜桃| 成人高清免费观看| 亚洲无线码一区二区三区| 91精品国模一区二区三区| 国产乱一区二区| 一区二区三区国产| 久久色视频免费观看| 色哦色哦哦色天天综合| 久久99精品国产麻豆不卡| 国产精品不卡在线| 日韩小视频在线观看专区| 99久久99久久精品免费看蜜桃| 亚洲成av人在线观看| 国产婷婷精品av在线| 欧美三级资源在线| 日产国产高清一区二区三区 | 欧美日韩国产精选| 国产成人精品网址| 亚洲高清免费在线| 亚洲国产精品v| 日韩欧美第一区| 一本久久综合亚洲鲁鲁五月天| 日本aⅴ亚洲精品中文乱码| 亚洲国产精华液网站w| 欧美一级黄色片| 91成人国产精品| 国产91丝袜在线观看| 日本午夜一区二区| 一区二区三区四区精品在线视频| 26uuu色噜噜精品一区二区| 欧美美女视频在线观看| 色婷婷综合久久久| 成人一区二区在线观看| 老色鬼精品视频在线观看播放| 伊人夜夜躁av伊人久久| 中文字幕在线观看不卡视频| 欧美zozo另类异族| 在线观看成人免费视频| 99视频有精品| 久草精品在线观看| 日韩二区三区四区| 亚洲国产一区视频| 一区二区国产盗摄色噜噜| 中文字幕永久在线不卡| 久久久99精品免费观看| 精品久久久久久久久久久久久久久 | 国产高清精品在线| 麻豆一区二区三| 日本美女一区二区三区| 日韩高清中文字幕一区| 午夜精品久久久久久久久久久| 亚洲欧美二区三区| 亚洲乱码国产乱码精品精的特点| 亚洲欧美综合色| 亚洲黄色性网站| 午夜婷婷国产麻豆精品| 午夜精品一区二区三区电影天堂| 亚洲已满18点击进入久久| 亚洲一二三区不卡| 日本欧美加勒比视频| 老司机午夜精品99久久| 国产精品一区二区91| 懂色av中文一区二区三区| 成人sese在线| 日本丶国产丶欧美色综合| 欧美日韩一区二区三区四区| 欧美卡1卡2卡| 精品理论电影在线观看| 国产欧美一区二区精品久导航| 国产精品成人在线观看| 亚洲一区视频在线| 久久99精品网久久| 色呦呦国产精品| 欧美一区三区四区| 亚洲国产精品成人综合| 亚洲男人天堂av网| 日韩成人一级片| 国产成人精品亚洲午夜麻豆| 97精品久久久午夜一区二区三区 | 欧美一区二区三区免费| 欧美xxx久久| 国产精品免费免费| 亚洲精品久久久久久国产精华液| 亚洲一区二区不卡免费| 亚洲第一二三四区| 亚洲二区在线视频| 久久婷婷综合激情| 亚洲成精国产精品女| 亚洲精品亚洲人成人网| 日本一区二区电影| 一区二区三区四区中文字幕| 欧美三级电影在线看| 日韩精品一区二区三区视频 | 成人激情小说乱人伦| 欧美色精品天天在线观看视频| 久久亚洲精品小早川怜子| 亚洲日本护士毛茸茸| 精品一区二区免费视频| 色999日韩国产欧美一区二区| 欧美一卡二卡三卡| 亚洲美女视频一区| 国产精品77777| 91精品欧美福利在线观看| 国产精品久久国产精麻豆99网站 | 亚洲欧洲韩国日本视频| 国内一区二区在线| 91精品欧美一区二区三区综合在| 亚洲免费观看高清完整版在线| 国产精品 欧美精品| 欧美一二三在线| 亚洲成av人片一区二区三区| 99久久精品国产毛片| 国产夜色精品一区二区av| 精品影视av免费| 日韩欧美在线影院| 奇米色777欧美一区二区| 欧美猛男男办公室激情| 一区二区高清在线| 91国产福利在线| 玉足女爽爽91| 99久久er热在这里只有精品15| 中文久久乱码一区二区| 国产精品系列在线观看| 精品免费视频.| 激情久久五月天| 久久婷婷久久一区二区三区| 狠狠色狠狠色综合| 久久午夜色播影院免费高清| 激情综合网av| 国产无人区一区二区三区| 风间由美一区二区三区在线观看| 久久精子c满五个校花| 国产精品一区二区视频| 亚洲国产成人私人影院tom| 成人a区在线观看| 亚洲欧美电影一区二区| 欧美午夜寂寞影院| 蜜桃一区二区三区四区| 国产三级久久久| 在线精品视频一区二区三四| 国产亚洲美州欧州综合国| 成人久久久精品乱码一区二区三区| 国产视频一区不卡| 色综合欧美在线视频区| 亚洲成人免费在线观看| 日韩欧美一二三| 成人深夜福利app| 一区二区三区在线观看视频| 在线免费av一区| 久久99国产精品免费| 国产精品蜜臀在线观看| 欧美视频一区在线| 久久99热这里只有精品| 1区2区3区欧美| 欧美一区二区黄色| 国产69精品一区二区亚洲孕妇| 亚洲精品中文字幕乱码三区| 欧美日韩日日骚| 成人午夜精品一区二区三区| 亚洲国产日韩在线一区模特| 日韩免费高清电影| www.66久久| 蜜桃视频第一区免费观看| ●精品国产综合乱码久久久久| 56国语精品自产拍在线观看| 国产成人午夜片在线观看高清观看| 亚洲黄色免费电影| 国产亚洲精品7777| 欧美精品久久久久久久久老牛影院| 国产精品综合av一区二区国产馆| 一区二区三区中文在线观看| 国产欧美一区二区精品仙草咪| 欧美一区二区黄色| 欧美丝袜自拍制服另类|