저는 C#에서 이미징을하는 상대적인 초보자입니다. 이것은 회원이되는 데 오랜 시간이 지난 후에이 보드에 대한 나의 첫 번째 질문입니다. 나는 그것이이 까다로운 시나리오를 극복하는데 도움이되기를 바랍니다.Image.Save()를 사용하면 C# Generic GDI + 오류가 발생합니다.
여러 페이지 TIFF의 내용 (프레임)을 읽고 각각을 목록으로 저장 한 다음 마지막으로 반환하여 일부 작업을 수행해야합니다.
Heres는 내 코드 지금까지
public static List<Image> GetAllPages(string file)
{
images = new List<Image>();
using (Image img = Image.FromFile(file))
{
try
{
for (int i = 0; i < img.GetFrameCount(FrameDimension.Page); i++)
{
img.SelectActiveFrame(FrameDimension.Page, i);
MemoryStream byteStream = new MemoryStream();
img.Save(byteStream, ImageFormat.Tiff);
images.Add(Image.FromStream(byteStream));
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
return images;
}
중요 - 윈도우 XP에서 동일하게 시도 할 때 나는 seemedly 잘 알려진 일반 GDI 얻을,하지만 윈도우 7에서 실행 할 때 실제로 매력처럼 작동 + 오류.
여기에 분명한 내용이 있습니까? 그렇지 않다면 다중 페이지 티프에서 추출한 이미지 목록을 반환하는 다른 방법이 있습니까?
누구든지 도움을 주시면 대단히 감사하겠습니다.
XP에는 GDI +, v1.00의 이전 버전이 있습니다. 훨씬 향상된 버전 인 v1.10에서 코드를 테스트했습니다. byteStream.Position = 0;을 잊어 버린 것처럼 아무 것도 가능합니다. 영향력이있다. 특정 TIFF는 수천 개의 호환되지 않는 파일 형식의 머리 글자입니다. 우리 모두를지지하고 XP 지원을 중단하십시오. –
@HansPassant 나는 GDI + 버전 시나리오에 대해 읽었습니다. 누군가가 지적 할 수있는 명백한 오류가 있었으면합니다. 나는 XP 지원을 중단하고 싶지만 불행하게도이 특별한 상황에서 나는 그 선택을하는 사람이 아니다. 그러나 제안한 행을 포함하여 테스트 해 보겠습니다. – user3095888
다른 사람이 XP 지원을 중단하겠다고 나에게 (그리고 수천 명의 다른 사람들과) 간단히 말하면서이 점에 대해 더 많은 통찰력을 제공 할 수 있다면 매우 감사하게 생각합니다! – user3095888