C# Exif metadata Remove

  • 2802
  • 0
  • C#
  • 2013-08-18

Remove Exif metadata by C#

EXIFExchangeable image file format), 記錄了數位照片許多屬性和拍攝數據 , 

 

其中可能包含類似GPS定位等隱私訊息 , 甚至圖片的產生日期 , 因此我們會希望使用者上傳的圖片

 

不會不經意的透漏一些隱私訊息 ,   目前許多網站例如 FaceBook , Twitter 就會抹去

 

這些照片的 meta data (詳見 INSIDE 的一篇文章) , 

 

由於我們在這裡只是單純的清除掉一些隱私Tag , 因此就沒有使用一些Exif Library,

 

有興趣的人可以至下列網址去取得這些Exif Library , 

 

Code Project 上的 ExifLibrary for .NET  ,  ExifTagCollection , ExifLib

 

The following code will remove the info of GPS 或者一些拍攝數據 , 

 

並且重新產生一張已經移除過資訊的照片

 


 Bitmap img = new Bitmap("C://test2.jpg");

        foreach (PropertyItem item in img.PropertyItems)
        {

            if (item.Type == 1)
            {
                img.RemovePropertyItem(item.Id);
            }
            //remove 設備廠牌 相機型號 建立軟體 拍照日期
            if (item.Type == 2)
            {
                img.RemovePropertyItem(item.Id);
            }
            //revmoe 色彩呈現 閃光燈模式 ISO速度 曝光程式 曝光時間 計量模式
            if (item.Type == 3)
            {
                img.RemovePropertyItem(item.Id);
            }

            if (item.Type == 4)
            {
                img.RemovePropertyItem(item.Id);
            }
            //remove GPS經緯度 透視光圈 主體距離 焦距 焦距比數 曝光時間
            if (item.Type == 5)
            {
                img.RemovePropertyItem(item.Id);
            }

        
            //remove 快門速度 曝光補償
            if (item.Type == 10)
            {
                img.RemovePropertyItem(item.Id);
            }
        }

        img.Save("C://tt.jpg");

 

 

參考資料來源 :

Exif Wiki

PropertyItem.Type