mehrdad372
جمعه 01 بهمن 1389, 14:16 عصر
سلام
من پروژه من طوریه که باید یه فایل عکس رو بگیره و در یه کادر عکس نشان بده.
آیا برنامه ای هست غیر از پسوند فایل که تشخصی بده این فایل عکس هست یا نه؟
ali.rezaei7
جمعه 01 بهمن 1389, 16:39 عصر
درود. تابعي كه نوشتم مي تونه فرمت هاي JPG,BMP,TIF,GIF,PNG رو پشتيباني كنه و در صورتي كه فايل مورد نظر، يكي از اين فرمت هاي باشه در خروجي مقدار TRUE رو بر مي گردونه.
private bool IsPicture(string FileName)
{
byte[][] ImagesHeader = new byte[][]
{
new byte[]{ 0xFF, 0xD8 },//JPG Header
new byte[]{ 0x42, 0x4D },//BMP Header
new byte[]{ 0x47, 0x49, 0x46 },//GIF Header
new byte[]{ 0x49, 0x49, 0x2A },//TIF Header
new byte[]{0x89,0x50,0x4E,0x47}//PNG Header
};
byte[] Header;
FileStream fs = new FileStream(FileName, FileMode.Open);
for (int i = 0; i < ImagesHeader.Length; i++)
{
Header = new byte[ImagesHeader[i].Length];
fs.Read(Header, 0, Header.Length);
if (Header.SequenceEqual(ImagesHeader[i]))
{
fs.Close();
return true;
}
fs.Seek(0, SeekOrigin.Begin);
Header = null;
}
fs.Close();
return false;
}
نوع فرمت تصوير در فايهاي گرافيكي، در شروع فايل ذخيره شده است. در كد بالا چند بايت آغازين فايل با عناصر آرايه ImagesHeader بررسي مي شه. و در صورتي كه با يكي از اونا برابر باشه، در اين صورت فايل مورد نظر تصوير هست و تابع مقدار TRUE بر مي گردونه.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.