PDA

View Full Version : سوال: دسترسی به نوع(فرمت) فایل های عکس



antisocial
چهارشنبه 02 دی 1388, 20:02 عصر
سلام
چه طور میشه نوع یک فایل تصویری مثلا jpg رو فهمید.البته نه با خواندن پسوند فایل .
میخوام به ذات فایل دسترسی پیدا کنم آیا واقعا jpg هست یا اینکه tif بوده و تنها یک کاربر متقلب پسوند اونو عوض کرده.چون هر دوشون رو میتونیم به صورت تصویری ببینیم!!!!!
ممنون میشم اگر راهنمایی کنید.

AliRezaPro
چهارشنبه 02 دی 1388, 20:20 عصر
از این تابع استفاده کنید، پسوند فایل رو خروجی میدهد.

private string getFileExtension(string fileName)
{
string extension="";
char []arr=fileName.ToCharArray();
int index=0;
for(int i=0;i<arr.Length;i++)
{
if(arr[i]=='.')
{
index=i; //get the last dot in the string
}
}
for(int x=index+1;x<arr.Length;x++)//build the new string
{
extension=extension+arr[x];
}

return extension;
}

antisocial
چهارشنبه 02 دی 1388, 22:02 عصر
ممنون اما من منظورم این بود که فرمت از طرز قرار گرفتن پیکسل ها در عکس تشخیص داده شود.( شاید نوعی پردازش تصویر) نه از روی نام و یا پسوند.آیا اصلا این کار شدنیه؟

Saeed.Masoumi
پنج شنبه 03 دی 1388, 11:45 صبح
سلام:



Image IMG = Image.FromFile(@"C:\1.jpg");
System.Drawing.Imaging.ImageFormat IMGFORMAT = IMG.RawFormat;
string strFormat = "unidentified format";
if (IMGFORMAT.Equals(System.Drawing.Imaging.ImageForm at.Bmp)) strFormat = "BMP";
else if (IMGFORMAT.Equals(System.Drawing.Imaging.ImageForm at.Emf)) strFormat = "EMF";
else if (IMGFORMAT.Equals(System.Drawing.Imaging.ImageForm at.Exif)) strFormat = "EXIF";
else if (IMGFORMAT.Equals(System.Drawing.Imaging.ImageForm at.Gif)) strFormat = "GIF";
else if (IMGFORMAT.Equals(System.Drawing.Imaging.ImageForm at.Icon)) strFormat = "Icon";
else if (IMGFORMAT.Equals(System.Drawing.Imaging.ImageForm at.Jpeg)) strFormat = "JPEG";
else if (IMGFORMAT.Equals(System.Drawing.Imaging.ImageForm at.MemoryBmp)) strFormat = "MemoryBMP";
else if (IMGFORMAT.Equals(System.Drawing.Imaging.ImageForm at.Png)) strFormat = "PNG";
else if (IMGFORMAT.Equals(System.Drawing.Imaging.ImageForm at.Tiff)) strFormat = "TIFF";
else if (IMGFORMAT.Equals(System.Drawing.Imaging.ImageForm at.Wmf)) strFormat = "WMF";
MessageBox.Show(strFormat);

مصطفی ساتکی
جمعه 25 دی 1388, 13:13 عصر
این فقط به همین چند فرمت محدود میشه . برای اینکه همه فرمت ها را شناسایی کنید فایل رو باز کرده چندین بایت اول فایل تصویری هدر شون قرار داره که از روی اون می تونید فرمت فایل رو تشخیص بدید.حتی تو هدر همه اطلاعات تکمیلی اعم از width و Height و resulation و غیره نیز وجود داره

مصطفی ساتکی
جمعه 25 دی 1388, 13:14 عصر
برای داشتن جزئیات هم از http://en.wikipedia.org/wiki/Image_format استفاده کنید