發表文章

目前顯示的是 8月, 2024的文章

[Node.js]計算檔案雜湊用來比對Cloud Storage的md5Hash

圖片
由於Cloud Storage返回的Metadata的md5Hash值是BASE64編碼過得資料,如下附圖,要比對是否相同需要生成相同的值。 這篇裡面會分別給予BASH指令和Node.js程式如何作用來比對GCS檔案的md5雜湊值

[Node.js]讀取JPEG相片EXIF資訊中的GPS和時間戳記

圖片
一些網站,如google photo,上傳相片後,會抓取偵測你的相片中的EXIF(Exchangeable image file format),自動得使用時間戳記資訊並歸類到合適的位置。 以前我是使用exiv2指令操作或複製exif資訊 ,這篇整理使用Node.js程式取出EXIF的GPS與時間戳記,時間戳記還會轉換有時區資訊的Date物件。 安裝套件 npm install exif 程式碼 import exif from 'exif' ; const ARGS = process . argv . slice ( 2 ); if ( ARGS . length < 1 ) { console . error ( `given 1 arg, usage: node ${ process . argv [ 1 ] } <input-image-path>` ) process . exit ( 1 ); } // 從第一個參數取的照片檔案路徑 const photoPath = ARGS [ 0 ]; // 從指定路徑取得exif資訊, 這是一個async函數 function readExifFromPathAsync ( image ) { return new Promise (( resolve , reject ) => { new exif . ExifImage ({ image }, ( error , exifData ) => { error ? reject ( error ) : resolve ( exifData ); }) }) } // 將timestamp字串轉換成Date function exifTS2Date ( timestamp , timezone ) { // 時間戳記字串格式是 YYYY:MM:DD HH:MM:SS const regex = / ^ ( \d {4} ) : ( \d {2} ) : ( \d {2} )[ T ]( \d {2} :\d {2} :\d {2} ) $ / ; //