원시 바이트로있는 이미지가 손상되었는지 여부를 어떻게 결정합니까? C#에서 여러 형식의이 문제를 처리하는 opensource 라이브러리가 있습니까?이미지를 읽고 손상되었는지 확인 C#
감사합니다.
원시 바이트로있는 이미지가 손상되었는지 여부를 어떻게 결정합니까? C#에서 여러 형식의이 문제를 처리하는 opensource 라이브러리가 있습니까?이미지를 읽고 손상되었는지 확인 C#
감사합니다.
파일에서 GDI + 비트 맵을 만들어보십시오. Bitmap 객체를 만드는 데 실패하면 이미지가 손상되었다고 가정 할 수 있습니다. GDI +는 file formats : BMP, GIF, JPEG, Exif, PNG, TIFF를 지원합니다.
public bool IsValidGDIPlusImage(string filename)
{
try
{
using (var bmp = new Bitmap(filename))
{
}
return true;
}
catch(Exception ex)
{
return false;
}
}
당신은 Exception
단지 ArgumentException
제한 할 수 있습니다,하지만 난 스위치를하기 전에 첫 번째 실험 것 :이 기능 같은
뭔가 작동합니다. 당신이 byte[]
이있는 경우
편집
, 다음이 작동합니다 :
public bool IsValidGDIPlusImage(byte[] imageData)
{
try
{
using (var ms = new MemoryStream(imageData))
{
using (var bmp = new Bitmap(ms))
{
}
}
return true;
}
catch (Exception ex)
{
return false;
}
}
글쎄 원시 바이트 있습니다 ... 그래서 질문을 편집했습니다 –
확인. 괜찮아 보이는 것만으로도 내가 필요로하는 것입니다! 감사. –
이것은주의해서 사용해야합니다. * using *으로 만든 비트 맵을 릴리스하는 것이 중요합니다. 그렇지 않으면 이미지가 손상 되었기 때문에 시스템에 리소스가 부족하여 많은 파일을 검사하는 동안 OutOfMemory 예외가 발생할 가능성이 큽니다. – Indy9000
당신은 아이디어를내어 이러한 링크를 찾을 수 있습니다. 첫 번째는 여기에 있습니다. Validate Images
두 번째 것은 여기에 있습니다. How to check corrupt TIFF images
그리고 죄송합니다.이 문제에 대한 외부 라이브러리를 모르겠습니다.
어떤 이미지 형식을 지원해야합니까? 단지 기본 4 (bmp/png/gif/jpg)이면 비트 맵 클래스를 사용하여로드하려고 시도 할 수 있습니다. – Will
가능한 복제본 [C#에서 JPEG 이미지의 유효성을 검사하는 방법/.Net이 손상되지 않았 음] (http://stackoverflow.com/questions/1173349/how-do-i-validate-a-jpeg-image-in- C-sharp-net-is-not-corrupted) – V4Vendetta
나는이 질문을 편집했다. –