파일에서 이미지를 읽을 때 올바른 이미지 파일인지 확인하는 것이 중요합니다. 유효성을 검사하지 않으면 예외가 발생하거나 데이터가 손상될 수 있습니다.
파일에서 이미지를 로드하는 다음 코드를 고려하세요.
string filePath = "image.jpg"; Image newImage = Image.FromFile(filePath);
image.jpg인 경우 잘못된 이미지인 경우 OutOfMemoryException이 발생합니다. 이는 Image.FromFile 메서드가 유효성을 검사하기 전에 전체 이미지를 메모리에 로드하려고 시도하기 때문입니다.
이 문제를 해결하려면 유효성 검사 기능을 사용할 수 있습니다. 다음은 파일 경로가 지정된 이미지의 유효성을 검사하는 함수의 예입니다.
bool IsValidImage(string fileName) { try { using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { byte[] header = new byte[8]; fs.Read(header, 0, 8); if (header[0] == 255 && header[1] == 216 && header[2] == 255 && (header[3] == 224 || header[3] == 225)) return true; } } catch (Exception) { return false; } return false; }
이 함수는 파일의 처음 8바이트를 읽고 헤더 서명을 확인합니다. 헤더가 유효한 JPEG 이미지 서명과 일치하면 함수는 true를 반환합니다. 그렇지 않으면 false를 반환합니다.
다음 코드는 IsValidImage 함수를 사용하는 방법을 보여줍니다.
if (IsValidImage("image.jpg")) { // Load the image if it's valid. Image newImage = Image.FromFile("image.jpg"); } else { // Handle invalid image here. }
이미지 유효성 검사 로드하기 전에 예외를 방지하고 유효한 이미지만 처리되도록 할 수 있습니다. 이 기사에서 제공하는 IsValidImage 함수는 이미지 유효성 검사를 수행하는 간단하고 효과적인 방법을 제공합니다.
위 내용은 예외를 방지하기 위해 C#에서 이미지를 로드하기 전에 유효성을 검사하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!