我想检查目录中的图片是否为png类型但扩展名为.bmp
。以下内容确定是否为.bmp
扩展名
string x = Path.GetExtension(file);
由此我们确定其扩展名为.bmp
。现在问题在于检查它是否是png格式。我被困在这一部分。
我这样做的原因是因为我希望我的图像透明,而.bmp图像不能很好地工作。 谢谢!
答案 0 :(得分:10)
上述答案不正确,代码应为:
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");
答案 1 :(得分:0)
我们可以使用此
检查文件扩展名 Byte[] imageBase64 = ....
var encodedFile = Encoding.ASCII.GetString(imageBase64);
return encodedFile.ToLower().StartsWith("?png", StringComparison.InvariantCultureIgnoreCase);
答案 2 :(得分:0)
这是我个人喜欢的另一种做法,因为您不必使用String(使用System.Drawing Library)检查字符串。
using (var fs = new FileStream(filename))
{
var fsImage = System.Drawing.Image.FromStream(fs);
if (fsImage.RawFormat == System.Drawing.Imaging.ImageFormat.Jpeg)
{
// Do something with Jpegs
}
else if (fsImage.RawFormat == System.Drawing.Imaging.ImageFormat.Png)
{
// Do something with Pngs
}
}
答案 3 :(得分:-1)
读取文件的前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
}