2013-07-06 2 views
0

imagebox의 이미지 픽셀을 TIFF 파일로 복사하고 싶습니다. 나는 LibTiff.Net을 사용하고 있으므로 TIFF 태그도 사용하고 싶습니다.imagebox에서 32bit 부동 소수점 tiff 파일로의 이미지

나는 imagebox에서 이미지를 MemoryStream으로 복사 한 다음 바이트 배열로 메모리 스트림을 복사하고 바이트 배열의 바이트를 TIFF 파일에 기록한다고 생각했습니다. 그러나 나는 그것을 어떻게하는지 모른다.

나는 모든 과정을 밟았지만, 파일에서 얻을 수있는 유일한 것은 "바코드"와 같습니다. 아, 32 비트 부동 소수점으로 출력 파일이 필요합니다. 내가 지금까지 얻을 경우 여기

은 다음과 같습니다

Tiff output = Tiff.Open(filename, "w"); 
if (output == null) 
{ 
    return; 
} 
else 
{ 
    MemoryStream ms = new MemoryStream(); 

    this.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Tiff); 

    byte[] buff = ms.GetBuffer(); 

    output.SetField(TiffTag.IMAGEWIDTH, width); 
    output.SetField(TiffTag.IMAGELENGTH, height); 
    output.SetField(TiffTag.SAMPLESPERPIXEL, 1); 
    output.SetField(TiffTag.BITSPERSAMPLE, 32); 
    output.SetField(TiffTag.SAMPLEFORMAT, 3); 
    output.SetField(TiffTag.ORIENTATION, BitMiracle.LibTiff.Classic.Orientation.TOPLEFT); 
    output.SetField(TiffTag.ROWSPERSTRIP, height); 
    output.SetField(TiffTag.PLANARCONFIG, PlanarConfig.CONTIG); 
    output.SetField(TiffTag.PHOTOMETRIC, Photometric.MINISBLACK); 
    output.SetField(TiffTag.COMPRESSION, Compression.NONE); 
    output.SetField(TiffTag.FILLORDER, FillOrder.MSB2LSB); 

    for (int i = 0; i < height; ++i) 
     output.WriteScanline(buff, i); 

    ms.Close(); 
    output.Close(); 
} 
+0

사이트를 악용하는 것 같습니다. 똑같은 문제에 대해 네 번째 질문에 연속적으로 질문했습니다. – Bobrovsky

+0

그것은 그런 것이 아니다. 나는 단지 유용한 대답을 필요로한다. – user2542022

답변

1

내가 프로그래밍에 약간의 경험을 가지고,하지만 난 무작위로 구글 질문을 발견했다.

소스 이미지가 .jpg와 같이 압축되어 있으므로 압축 된 데이터를 메모리 스트림과 tiff 파일로로드하므로 픽셀 데이터 자체가 아닌 바코드가 표시됩니다.

이미지를 압축되지 않은 비트 맵 파일로 변환하고 다시 시도해보십시오.

+0

그리고 나는 그것을 어떻게해야만 하는가? 코드 좀 써주시겠습니까? – user2542022

+0

Idk, JPEG에 대한 몇 가지 라이브러리를 찾으십시오. 확실히 압축 해제 기능을 제공합니다. Google 및 Man 페이지는 친구입니다. – Krz