시리얼 포트를 통해 연결된 카메라에서 JPEG 이미지를 가져 오는 프로그램을 작성하고 있습니다. 이미지의 Source 특성을 사용하여 검색된 이미지를 표시하기 위해 WPF에서 이미지를 프로그래밍 방식으로 정의하고 싶습니다.JPEG 시리얼 카메라의 이미지가 C#으로 로딩되지 않았습니다. BitmapImage
나는
image1.Source = new BitmapImage(new Uri(Environment.CurrentDirectory + @"/" + photo + ".jpg"));
대부분의 이미지가 절대적으로 잘 작동하지만 몇 가지 이유는이 카메라에서 이미지를 좋아하지 않는 것으로 나타났습니다. JPEG에 대해 저보다 많이 아는 사람이라면 누구나 그것을 살펴보고 문제가 될 수있는 이유를 알아주십시오.
http://dl.dropbox.com/u/2434899/0%20%282%29.jpg
편집 : 일부 조사 후, 나는 WPF/C#을 좋아하지 않는 JFIF 헤더 데이터가 아마도 것으로 확인되었습니다. 프로그램 내에서이를 수정할 수있는 쉬운 방법이 있습니까?
편집 2 : 나는 문제를 발견했다고 생각합니다. 카메라의 JFIF 헤더 데이터는 완전한 쓰레기입니다. 그것은 기본적으로 0-10입니다 ... 결국 16 진수 편집기로 읽어야했습니다. 나는 작업 파일에서 JFIF 헤더를 가로 질러 복사했는데 이제는 괜찮습니다. 들어오는대로 각 헤더를 편집해야합니다.
FF D8 FF E0 00 11 :
http://www.4dsystems.com.au/prod.php?id=75
각 사진과 같은 정크 헤더 정보를 제공하는 것 :이 카메라로이 문제가 발생 사람의 정보를
4A 46 49 46 00 01 02 03 04 05 06 07 08 09 0 FF DB그리고 그 중 어느 것도 JFIF 표준과 일치하지 않습니다.
http://en.wikipedia.org/wiki/JPEG_File_Interchange_Format
것 같습니다 당신이 바로이 함께 JFIF 헤더를 대체 할 경우 :
FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 60 00 60 00 00 FF DB
효과가있을 것입니다. 그냥 정크 헤더에있는 "FF DB"까지 파일을 읽으십시오. 헤더에 대한 '중지 단어'인 것처럼 보입니다. 그런 다음 스왑 아웃합니다.
가 바이트 26E 때까지 계속 헤더 정보로 나타날 것입니다 무슨의 두 번째 많은입니다 ... 그리고 내가 여기에있는 이미지 모두에서 동일하게 보이지만이 될 것 같지 않습니다 C# 로딩 문제의 원인. JFIF에서는 아무 것도 보이지 않으므로 잘 모르겠습니다.
손상된 방법을 알아내는 데 도움이되는 정보가 있습니까? 나는 그것이 나쁘다는 것을 알지만, 그것이 내 프로그램인지 카메라인지를 잘 모른다. – Luke
페인트를 사용하여 저장 한 후 이미지가 20KB 대신 41KB로 두 배가되었음을 확인했습니다. – Luke
OP를 편집했습니다. – Luke