Remove Exif metadata by C#
EXIF(Exchangeable 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");
參考資料來源 :