2016-11-17 1 views
0

를 사용하여 단일 TIFF 파일에 이미지의 목록을 변환 :<a href="https://magick.codeplex.com/wikipage?title=Convert%20image" rel="nofollow noreferrer">MagickImage.NET Library</a>를 사용하여 내가 이미지 목록에서 하나의 TIFF 파일을 만들려면 다음 코드를 사용하고 MagickImage.NET

/// <summary> 
    /// Create single tiff file from a list of base64String images 
    /// </summary> 
    /// <param name="pages">A list of base64String images</param> 
    /// <returns>Byte array of the created tiff file</returns> 
    public static byte[] CreateSingleTiff(List<string> pages) 
    { 
     MagickImage pageImage; 
     using (MemoryStream byteStream = new MemoryStream()) 
     { 
      using (MagickImageCollection imagecoll = new MagickImageCollection()) 
      { 

       for (int i = 0; i < pages.Count; i++) 
       { 
        byte[] newBytes = Convert.FromBase64String(pages[i].Replace("data:image/Jpeg;base64,", "")); 
        pageImage = new MagickImage(newBytes); 
        imagecoll.Add(pageImage); 
       } 
       return imagecoll.ToByteArray();//The problem occurs right here 
      } 
     } 
    } 

을하지만 첫 번째 페이지를 받고 있어요 만!. 여기

내가 디스크에 이미지를 기록하는 데 사용되는 라인 :

Image.FromStream(new MemoryStream(result)).Save(path, System.Drawing.Imaging.ImageFormat.Tiff); 

나는 비슷한에 대한 유래를 발굴하기 위해 노력하지만 난 운이 없었다. 분명히 MagickImage.NET 라이브러리에 대한 좋은 지원은 없습니다. 이 방법이 보이지 않는다면 다른 유용한 방법은 무엇입니까? this one

답변

0

이 줄에 문제가있는 것처럼 보입니다. return imagecoll.ToByteArray(); 이미지는 다중 페이지 티프 이미지이며 반환되는 바이트 배열의 길이도 같습니다 이미지가 TIFF 이미지에 추가되는 것과 비교하면 작습니다. 나는 MagickFormat 열거 형을 사용하여 매개 변수로 이미지 형식을 사용하는 오버로드 된 메서드를 찾았습니다. 제 경우에는 MagickFormat.Tiff을 사용했습니다.

+0

형식을 지정하지 않으면 원본 이미지의 형식이 JPEG이며 해당 형식이 여러 레이어를 지원하지 않습니다. 그래서 첫 번째 이미지 만 얻습니다. (p.s. 직접 디스크에 바이트 배열을 쓸 수 있습니다) – dlemstra

관련 문제

 관련 문제