国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

1024程序員節(jié)帶你玩轉(zhuǎn)圖片Exif信息獲取之JavaScript

這篇具有很好參考價值的文章主要介紹了1024程序員節(jié)帶你玩轉(zhuǎn)圖片Exif信息獲取之JavaScript。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、前言

二、背景

三、Exif.js

? ? ? ? ?1、Exif.js 簡介

2、Exif.js 引入

四、多場景展示數(shù)據(jù)獲取

1、原始圖片直接獲取

?2、base64 編碼文件加載

?3、文件上傳的方式加載

?五、總結(jié)


一、前言

exif-js,js,工作拾遺,中間件,javascript,前端,Exif.js

? ? ? ?1024是2的十次方,二進制計數(shù)的基本計量單位之一。1G=1024M,而1G與1級諧音,也有一級棒的意思。程序員就像是一個個1024,以最低調(diào)、踏實、核心的功能模塊搭建起這個科技世界。1024程序員節(jié)是廣大程序員的共同節(jié)日。從2015年起,每年10月24日定義為程序員節(jié)。以一個節(jié)日的形式,向通過coding改變世界,也以實際行動在浮躁的世界里,固執(zhí)地堅持自己對于知識、技術(shù)和創(chuàng)新追求的程序員們表示致敬。在致敬技術(shù)的同時,有點程序猿(媛)們的自我調(diào)侃的意思。馬上就是2022年10月24日,正好與1024這個數(shù)字吻合,這是我的第7個程序員節(jié)了。那么你呢,朋友。這是你的第幾個1024?在這個專屬的節(jié)日里,祝廣大IT圈的兄弟姐妹們節(jié)日快樂,祝愿大家的系統(tǒng)系統(tǒng)不宕機,程序不報錯,測試評審一遍過,系統(tǒng)絕不報警,產(chǎn)品同學(xué)不為難你,最最重要,發(fā)量要多,氣質(zhì)要在線。

二、背景

? ? ? ?之前的博文,曾經(jīng)簡單介紹了在后臺使用JAVA來獲取圖片和視頻文件的Exif信息,博文地址:輕松獲取圖片和視頻文件的Exif信息-Java篇,這是從系統(tǒng)后臺的角度來進行讀取。這么做的好處就是可以使用后臺來接收處理這些圖片信息,那對于應(yīng)用來講,就完全依賴后臺了。那么針對圖片這種信息,有沒有直接通過前端技術(shù),比如使用JavaScript來獲取呢?

? ? ? ?答案肯定有的,如果您不想通過后臺接口去獲取圖片的Exif信息,那么您大可以使用Exif.js,這個庫來完成對圖片信息的獲取。本文將介紹如何使用Exif.js來讀取圖片的Exif信息,通過代碼示例的方式來深入探索,并給出運行案例。

三、Exif.js

1、Exif.js 簡介

? ? ? ? Exif.js一個JavaScript庫,主要用于從圖像文件中讀取 Exif信息。你可以在瀏覽器中的圖像上使用它,可以從圖像或文件輸入元素中使用。同時檢索EXIF和IPTC元數(shù)據(jù)。

注意:EXIF標準僅適用于“.jpg”和“.tiff”圖像。Exif.js的開源地址為:Exif-js地址,喜歡中文的可以參考漢化版:漢化版Exif.js,有興趣的朋友可以自行下載學(xué)習(xí)。以下是我本機的工程實例目錄(英文版):

exif-js,js,工作拾遺,中間件,javascript,前端,Exif.js

?2、Exif.js 引入

? ? ? ? exif.js引入的方式跟普通的javascript文件引入沒什么區(qū)別,使用<script/>進行引入即可。如下面的參考語法:

<script type="text/javascript" src="exif.js"></script>

? ? ? ? 下面是具體在Html頁面中如何展示信息。

window.onload=getExif;

function getExif() {
    var img1 = document.getElementById("img1");
    EXIF.getData(img1, function() {
        var make = EXIF.getTag(this, "Make");
        var model = EXIF.getTag(this, "Model");
        var makeAndModel = document.getElementById("makeAndModel");
        makeAndModel.innerHTML = `${make} ${model}`;
    });

    var img2 = document.getElementById("img2");
    EXIF.getData(img2, function() {
        var allMetaData = EXIF.getAllTags(this);
        var allMetaDataSpan = document.getElementById("allMetaDataSpan");
        allMetaDataSpan.innerHTML = JSON.stringify(allMetaData, null, "\t");
    });
}
<img src="image1.jpg" id="img1" />
<pre>Make and model: <span id="makeAndModel"></span></pre>
<br/>
<img src="image2.jpg" id="img2" />
<pre id="allMetaDataSpan"></pre>

注意:在調(diào)用?getData?或任何其他函數(shù)之前,必須等待圖像完全加載。否則它不會起任何作用。 可以通過在?window.onLoad?函數(shù)上運行EXIT提取方法來實現(xiàn)此等待。或者在圖像自己的?onLoad?函數(shù)上。 對于 jQuery 用戶,請注意您不能(可靠地)為此使用 jQuery 的?ready?事件。因為它會在加載圖像之前觸發(fā)。 您可以使用 $(window).load() 代替 $(document.ready()(請注意,exif-js 不依賴于 jQuery 或任何其他外部庫)。

四、多場景展示數(shù)據(jù)獲取

1、原始圖片直接獲取

? ? ? 這里演示直接獲取網(wǎng)頁上一張圖片的附屬信息,html部分示例代碼如下:

<img src="example/DSCN0614_small.jpg" id="img1" width="430px" height="300px"/>   
<img src="example/Bush-dog.jpg" id="img2" width="430px" height="300px"/>
<img src="example/IMG_1402.JPG" id="img6" width="430px" height="300px"/>
<br/>
<img src="example/dsc_09827.jpg" id="img3" width="430px" height="300px"/>
<img src="example/IMG_1731.JPG" id="img4" width="430px" height="300px"/>
<img src="example/IMG_1816.JPG" id="img5" width="430px" height="300px"/><br/>

<script>
        document.getElementById("img1").onclick = function() {
            EXIF.getData(this, function() {
                var make = EXIF.getTag(this, "Make"),
                    model = EXIF.getTag(this, "Model");
                alert("I was taken by a " + make + " " + model);
            });
        }

        document.getElementById("img2").onclick = function() {
            EXIF.getData(this, function() {
                alert(EXIF.pretty(this));
            });
        }

        document.getElementById("img3").onclick = function() {
            EXIF.getData(this, function() {
                alert(EXIF.pretty(this));
            });
        }

		document.getElementById("img4").onclick = function() {
            EXIF.getData(this, function() {
                alert(EXIF.pretty(this));
            });
        }

		document.getElementById("img5").onclick = function() {
            EXIF.getData(this, function() {
                alert(EXIF.pretty(this));
            });
        }

		document.getElementById("img6").onclick = function() {
            EXIF.getData(this, function() {
                alert(EXIF.pretty(this));
            });
        }
</script>

exif-js,js,工作拾遺,中間件,javascript,前端,Exif.js

?2、base64 編碼文件加載

? ? ?Exif.js 提供了 JavaScript 讀取圖像的原始數(shù)據(jù)的功能擴展。在現(xiàn)在的應(yīng)用中,會存在將圖片信息進行字符流化的,因此需要對字符流化的數(shù)據(jù)也進行加載。示例代碼如下:

document.getElementById("base64test").onclick = function() {
   var image = new Image();
   image.onload = function() {
        EXIF.getData(image, function() {
             alert(EXIF.pretty(this));
        });
    };
  image.src = "";//base64str
}

exif-js,js,工作拾遺,中間件,javascript,前端,Exif.js

?注意:?使用設(shè)備(如相機、手機、攝像頭等)拍攝的照片進行測試,這樣照片才有 EXIF 數(shù)據(jù)。

?3、文件上傳的方式加載

? ? ? ?Exif.js同時也支持使用文件上傳的方式對圖片的信息進行加載。其原理和第一種的方式幾乎是一樣的。所以這里展示一下示例頁面吧。

exif-js,js,工作拾遺,中間件,javascript,前端,Exif.js

?五、總結(jié)

? ? ? ? 以上就是今天要講的內(nèi)容,本文簡單介紹了exif.js的基礎(chǔ)知識,然后介紹了如何在html頁面中集成exif.js,其次重點說明了3種常用的使用場景,有圖有真相,通過示例運行的方式來講解exif.js的具體使用案例。不過需要說明的是,exif.js確實是有缺陷的,它只能解決圖片的附加信息讀取,而且通常不會在前臺進行信息讀取,因為一般我們會在后臺進行圖片的處理。在處理的過程當(dāng)中,就可能對附屬信息盡心修改,因此有可能造成信息的缺失,所以在實際應(yīng)用過程中,請各位根據(jù)需求來選擇使用。

? ? ? ?文章的最后,依然要祝IT圈的小伙伴們,節(jié)日快樂。祝大家都能擁抱生活,擁抱快樂?!八懔π聲r代·開源創(chuàng)未來”,在這里也祝CSDN2022程序員節(jié)系列活動,圓滿成功。

exif-js,js,工作拾遺,中間件,javascript,前端,Exif.js文章來源地址http://www.zghlxwxcb.cn/news/detail-829380.html

到了這里,關(guān)于1024程序員節(jié)帶你玩轉(zhuǎn)圖片Exif信息獲取之JavaScript的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 解決github ping不通的問題(1024程序員節(jié)快樂!

    1024程序員節(jié)快樂?。?隨便粘貼一個文檔,參加活動 域名解析(域名-IP):https://www.ipaddress.com/ Ubuntu平臺 github經(jīng)常ping不通或者訪問緩慢,方法是更改hosts文件 在hosts里添加github的ip 140.82.114.4 www.github.com 199.232.5.194 github.global.ssl.fastly.net 54.231.114.219 github-cloud.s3.amazonaws.com 可以訪

    2024年01月18日
    瀏覽(35)
  • 好用且免費的CodeWhisperer,給1024程序員節(jié)送禮來了

    好用且免費的CodeWhisperer,給1024程序員節(jié)送禮來了

    ? ? ? 國慶期間沒有膽量去人從眾的景點,關(guān)在家里刷手機時意外在亞馬遜的User Group公眾號上發(fā)現(xiàn)了CodeWhisperer這么個好東西(bu yao qian),以后擼代碼也可以提高生產(chǎn)力(fang yang mo yu)了,這還不趕緊上手試一下。看官方介紹說它支持流行的IDE開發(fā)工具,包括VS Code、Intelli

    2024年02月08日
    瀏覽(31)
  • 1024程序員節(jié)特輯 | Spring Boot實戰(zhàn) 之 MongoDB分片或復(fù)制集操作

    1024程序員節(jié)特輯 | Spring Boot實戰(zhàn) 之 MongoDB分片或復(fù)制集操作

    Spring實戰(zhàn)系列文章: Spring實戰(zhàn) | Spring AOP核心秘笈之葵花寶典 Spring實戰(zhàn) | Spring IOC不能說的秘密? 國慶中秋特輯系列文章: 國慶中秋特輯(八)Spring Boot項目如何使用JPA 國慶中秋特輯(七)Java軟件工程師常見20道編程面試題 國慶中秋特輯(六)大學(xué)生常見30道寶藏編程面試題

    2024年02月08日
    瀏覽(44)
  • 1024程序員狂歡節(jié) | IT前沿技術(shù)、人工智能、數(shù)據(jù)挖掘、網(wǎng)絡(luò)空間安全技術(shù)

    1024程序員狂歡節(jié) | IT前沿技術(shù)、人工智能、數(shù)據(jù)挖掘、網(wǎng)絡(luò)空間安全技術(shù)

    一年一度的1024程序員狂歡節(jié)又到啦!成為更卓越的自己,堅持閱讀和學(xué)習(xí),別給自己留遺憾,行動起來吧! 那么,都有哪些好書值得入手呢?小編為大家整理了前沿技術(shù)、人工智能、集成電路科學(xué)與芯片技術(shù)、新一代信息與通信技術(shù)、網(wǎng)絡(luò)空間安全技術(shù),四大熱點領(lǐng)域近期

    2024年02月06日
    瀏覽(32)
  • 1024程序員節(jié)特輯 | ELK+ 用戶畫像構(gòu)建個性化推薦引擎,智能實現(xiàn)“千人千面”

    1024程序員節(jié)特輯 | ELK+ 用戶畫像構(gòu)建個性化推薦引擎,智能實現(xiàn)“千人千面”

    專欄集錦,大佬們可以收藏以備不時之需 Spring Cloud實戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9270827.html Python 實戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9271194.html Logback 詳解專欄:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow專欄:https://blog.csdn.net/superdangbo/category_869

    2024年02月07日
    瀏覽(36)
  • 程序員怎么玩轉(zhuǎn)Linux

    程序員怎么玩轉(zhuǎn)Linux

    Linux下可以使用Python編寫爬蟲程序,常用的爬蟲框架有Scrapy和BeautifulSoup。 Scrapy是一個基于Python的開源網(wǎng)絡(luò)爬蟲框架,可以快速高效地從網(wǎng)站上獲取數(shù)據(jù)。它提供了強大的數(shù)據(jù)提取和處理功能,支持異步網(wǎng)絡(luò)請求和分布式爬取等特性。 BeautifulSoup是一個Python庫,可以從HTML或XM

    2024年02月07日
    瀏覽(20)
  • 1024程序員節(jié)特輯 | 解密Spring Cloud Hystrix熔斷提高系統(tǒng)的可用性和容錯能力

    1024程序員節(jié)特輯 | 解密Spring Cloud Hystrix熔斷提高系統(tǒng)的可用性和容錯能力

    專欄集錦,大佬們可以收藏以備不時之需 Spring Cloud實戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9270827.html Python 實戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9271194.html Logback 詳解專欄:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow專欄:https://blog.csdn.net/superdangbo/category_869

    2024年02月08日
    瀏覽(28)
  • 1024程序員節(jié)?我們整點AI繪圖玩玩吧,一文教你配置stable-diffusion

    1024程序員節(jié)?我們整點AI繪圖玩玩吧,一文教你配置stable-diffusion

    需提前準備:一臺高性能的電腦(尤其是顯存)、python、Git、梯子。 其實Github上有很多關(guān)于Stable diffusion的庫,綜合對比之后,我選取的是比較全面的AUTOMATIC1111這個,源碼鏈接:Stable-diffusion(Github) 找到安裝那塊的教程,此教程以windows為例。 ps:如果你電腦上已經(jīng)有了pyt

    2024年01月16日
    瀏覽(31)
  • 玩轉(zhuǎn)Git: 程序員的日常手冊

    玩轉(zhuǎn)Git: 程序員的日常手冊

    Git是一個分布式版本控制系統(tǒng),也是一個開源項目,最初為了幫助Linux內(nèi)核開發(fā)。Git主要著重于數(shù)據(jù)完整性,數(shù)據(jù)的離散存儲以及支持非線性開發(fā),例如多個并行的散射分支。它具有超強的合并和分支操作。 在開始之前,我們需要首先在Git官方網(wǎng)站安裝 Git。完成后,打開你的

    2024年02月04日
    瀏覽(20)
  • PHP框架開發(fā)實踐 | 1024 程序員節(jié):通過index.php找到對應(yīng)的controller是如何實現(xiàn)的

    PHP框架開發(fā)實踐 | 1024 程序員節(jié):通過index.php找到對應(yīng)的controller是如何實現(xiàn)的

    ??作者簡介,黑夜開發(fā)者,CSDN領(lǐng)軍人物,全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者?,CSDN博客專家,阿里云社區(qū)專家博主,2023年6月CSDN上海賽道top4。 ??數(shù)年電商行業(yè)從業(yè)經(jīng)驗,歷任核心研發(fā)工程師,項目技術(shù)負責(zé)人。 ??本文已收錄于PHP專欄:PHP進階實戰(zhàn)教程。 ??歡迎 ??點贊?評論?收藏

    2024年02月08日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包