CCITTFaxDecode을 사용하여 압축 된 이미지를 받았습니다. 그래서 Bit Miracle의 LibTiff.Net을 사용하여 이미지를 어떤 형식 으로든 변환 할 수있었습니다.Bit Miracle LibTiff.Net을 사용하여 MemoryStream에 이미지를 쓰는 방법
압축 해제 된 이미지를 MemoryStream
에 작성해야합니다. I는 다른 스레드로부터 코드 예를 사용하고 난 데있어 문제가 MemoryStream
바이트 배열 올바른 이미지이다 코드
using BitMiracle.LibTiff.Classic;
...
MemoryStream ms = new MemoryStream();
TiffStream stm = new TiffStream();
Tiff tiff = Tiff.ClientOpen("","w",ms,stm);
tiff.SetField(TiffTag.IMAGEWIDTH, UInt32.Parse(pd.Get(PdfName.WIDTH).ToString()));
tiff.SetField(TiffTag.IMAGELENGTH, UInt32.Parse(pd.Get(PdfName.HEIGHT).ToString()));
tiff.SetField(TiffTag.COMPRESSION, Compression.CCITTFAX4);
tiff.SetField(TiffTag.BITSPERSAMPLE, UInt32.Parse(pd.Get(PdfName.BITSPERCOMPONENT).ToString()));
tiff.SetField(TiffTag.SAMPLESPERPIXEL, 1);
tiff.WriteRawStrip(0, raw, raw.Length);
MemoryStream newStream = (MemoryStream)tiff.Clientdata();
tiff.Close();
를 사용할 수 있었다.
newStream
메모리 스트림을로드하려면 System.Drawing.Image
클래스를 사용했지만 바이트 배열에 일부 null 값이 있습니다.
Open
생성자를 사용하여 디스크에 이미지를 쓰면 제대로 작동합니다.
누군가가 MemoryStream
이 압축 해제 된 이미지를 저장하지 못하는 이유를 알고 있는지 알고 싶습니다.
감사