我想檢查目錄中的圖像是否爲png類型,但擴展名爲.bmp
。下面確定它是否是一個.bmp
擴展儘管.BMP擴展名確定圖像是否爲PNG
string x = Path.GetExtension(file);
由此我們建立它的擴展名是.bmp
。現在問題出現在檢查它是否是png格式。我被困在這一部分。
我之所以這樣做是因爲我想讓我的圖像透明,.bmp圖像不能很好地工作。 謝謝!
我想檢查目錄中的圖像是否爲png類型,但擴展名爲.bmp
。下面確定它是否是一個.bmp
擴展儘管.BMP擴展名確定圖像是否爲PNG
string x = Path.GetExtension(file);
由此我們建立它的擴展名是.bmp
。現在問題出現在檢查它是否是png格式。我被困在這一部分。
我之所以這樣做是因爲我想讓我的圖像透明,.bmp圖像不能很好地工作。 謝謝!
閱讀前4個字節的文件:
byte[] b = new byte[4];
using (var fs = new FileStream(filename))
{
fs.Read(b, 0, 4);
}
if (b.ToString().Contains("PNG"))
{
// this is a png file
}
是的,你不能總是信任文件擴展名。您應該*總是*檢查文件簽名(前幾個魔術字節)以確保該文件實際上是它聲稱的類型。 –
-1這是不正確的 - 由@Andrew dh作答 – lstanczyk
以上回答不正確,則代碼應該是:
var header = new byte[4];
using (var fs = new FileStream(filename))
{
fs.Read(header, 0, 4);
}
var strHeader = Encoding.ASCII.GetString(header);
return strHeader.ToLower().EndsWith("png");
我們可以用這個
Byte[] imageBase64 = ....
var encodedFile = Encoding.ASCII.GetString(imageBase64);
return encodedFile.ToLower().StartsWith("?png", StringComparison.InvariantCultureIgnoreCase);
檢查文件的擴展名
查看接受的答案和第一評論:http://stackoverflow.com/questions/670546/determine-if-file-is-an-image –
@GeorgeJohnston即使文件的擴展名爲.bmp,最後的8位也會是那個在其他文章中的答案?有趣的 – haysam
@haysam前8個字節,而不是最後8個位,但是 - 擴展名只是文件名的一部分,它只是約定位圖是'.bmp'而PNG是'.png' – Blorgbeard