여기에 System.Drawing.Image 인스턴스를 생성해야하는 메서드가 있습니다. 다음 prerequesites을 고려BitmapSource를 모든 프레임을 유지하는 이미지로 변환
- 나는 당신이 이미지에 BitmapSource는에서 변환을 수행하는 코드를 찾을 수 아래의 방법 매개 변수
- 로 BitmapSource는 얻을.
변환 :
public Image ConvertBitmapSourceToImage(BitmapSource input)
{
MemoryStream transportStream = new MemoryStream();
BitmapEncoder enc = new BmpBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(input));
enc.Save(transportStream);
transportStream.Seek(0, SeekOrigin.Begin);
return Image.FromStream(transportStream);
}
는 이제 BitmapSource는이 멀티 페이지 tif 여야 파일에서 생성 된 상상한다. 내가해야 할 일은 코드에서 n 번째 페이지를 사용할 수있게하는 것입니다. BitmapSource 클래스는 이에 대한 지원을 제공하지 않으므로 첫 번째 프레임을 제외한 나머지 프레임을 입력에서 가져 오는 방법을 알고 있습니까? 또는 BitmapSource가 Tif 전체를 하나의 프레임으로 읽어 프레임 정보를 잃어 버렸습니까? 그것이 가능했던 경우
, 정말 좋아, 내 메소드 서명에 다른 매개 변수를 추가 할 수 있습니다
public Image ConvertBitmapSourceToImage(BitmapSource input, int frame)
{
///[..]
}
어떤 아이디어를?
미리 감사드립니다.
여러 이미지를 표시하거나 '내비게이션'하는 방법이 명확하지 않습니다. 그들은 마우스를 클릭하여 서로 겹치거나 나란히 놓여 있어야합니다. 이러한 다중 이미지 컨트롤이 사용되는 방법에 대한 정보를 조금 더 제공하십시오. – Clemens
죄송합니다. 아마도 제대로 작성되지 않았을 것입니다. 현재 페이지 만 표시하고 Navigation은 PageSelection을 늘리거나 줄입니다. 따라서 탐색이 앞으로 진행될 때 첫 번째 이미지 대신 이미지의 두 번째 프레임을 표시하려고합니다. 이미지 클래스는 멀티 프레임을 지원하지만, 입력으로 얻는 것은 모두 (Multipage Tiff 파일에서 생성 된) BitmapSource뿐입니다. –
[MSDN] (http://msdn.microsoft.com/en-us/library/system.windows.controls.image.aspx)에는 '다중 프레임 이미지를 표시 할 때 첫 번째 프레임 만 표시됩니다. 다중 프레임 이미지의 애니메이션은 이미지 컨트롤에 의해 지원되지 않습니다. 따라서 프레임 당 하나의 이미지를 만드는 것이 더 나을 것입니다. – Clemens