今回はXamarin.Formsでの画像のファイルタイプの判定方法についてです。
画像のファイルタイプを判定するにはバイナリデータを見れば判定できます。
画像データはバイナリデータのヘッダ部分に画像のファイルタイプの情報が書かれています。
そのため、その部分を読み込んで見てあげることで、どんな画像ファイルなのか判別することができます。
Android,iOS共に処理は共通です。
public void Check(byte[] buf) {
string fileHeader = "";
for (int i = 0; i < 2; i++) {
fileHeader += buf[i].ToString("X4");
}
if (fileHeader == "00FF00D8") {
// jpeg
} else if (fileHeader == "00890050") {
// png
} else if (fileHeader == "00470049") {
// gif
}
}
ちなみに画像のフルパスからbyteデータを取得する方法は下記の処理で取得することができます。
var bytes = System.IO.File.ReadAllBytes(@ここにファイルのフルパス指定);