2011-04-13 3 views
0

처리하기 전에 미리보기 이미지를 먼저로드해야하는 프로그램을 작성하고 있습니다.이미지가 큰 경우에도 미리보기가 회전하지 않음

img = Image.FromFile(file_path); 

int img_w = img.Width; 
int img_h = img.Height; 

int desired_size = 150; 

int img_h1 = desired_size; 
double resize = (double)img_h/(double)img_w; 
resize = (double)desired_size * resize; 
img_h1 = (int)resize; 

thumb = img.GetThumbnailImage(desired_size, img_h1, null, IntPtr.Zero); 

이 코드는 이미지를로드 한 다음 축소판을 만듭니다.

카메라로 촬영 한 사진 중 일부가 회전되어 IrfanView에서 90도 회전했습니다. C# 응용 프로그램에로드 된 축소판도 여전히 잘못 회전합니다 (큰 이미지는 괜찮습니다).

이 문제를 해결하려면 어떻게합니까?

답변

0

코드에서 이미지를 회전시킬만한 것이 보이지 않으므로로드중인 이미지 파일에 이상이 있다고 생각합니다.

특히 내 생각에 이미지 파일에는 "기본"이미지처럼 회전되지 않은 포함 된 미리보기가 있습니다. IrfanView를 사용하여 이미지를 회전 시키려면 take a look at this thread을 사용하고 축소판 그림을 새로 고칩니다.

MSDN's documentation for Image.GetThumbnailImage을 인용 : 그 이유는 당신의 문제를 해결하고 여기에 수있는 이미지가 포함 된 썸네일 이미지를 포함

경우,이 메소드는 임베디드 축소판 를 검색하고 그것을 요청한 크기로 를 확장 할 수 있습니다. 이미지 에 포함 된 썸네일 이미지가 포함되어 있지 않으면이 메서드는 주 이미지의 크기를 조정하여 썸네일 이미지를 만듭니다.