Visual Studio 2012 (C 코드), 64 비트 Windows에서 LibTIFF를 사용하여 16 비트 회색조 TIF 이미지를 생성하고 있습니다. 다양한 타사 이미지 뷰어에서 결과 이미지를 열 수 있으며 잘 보입니다. 내 문제는 비록 나는 단지 XRESOLUTION을 쓸 수있는 것처럼 보인다. YRESOLUTION 및 RESOLUTIONUNIT에 쓰는 값은 헤더에 쓰지 않는 것 같습니다. I (예) 또는 인식 시스템 AsTiffTagViewer 소프트웨어 ImageJ에 내부에서 생성 된 이미지를 열면LIBTIFF가 YRESOLUTION 및 RESOLUTIONUNIT를 저장하지 못했습니다.
TIFF* tif = TIFFOpen("c:\local\test.tif", "w");
TIFFSetField(tif, TIFFTAG_IMAGEWIDTH , 2868);
TIFFSetField(tif, TIFFTAG_IMAGELENGTH , 2048);
TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE , 16);
TIFFSetField(tif, TIFFTAG_RESOLUTIONUNIT, RESUNIT_CENTIMETER);
TIFFSetField(tif, TIFFTAG_XRESOLUTION , 115.0);
TIFFSetField(tif, TIFFTAG_YRESOLUTION , 115.0);
(That is all for SetFields.. I'll omit the subsequent loop
and TIFFWriteScanLine calls for clarity, as the resulting
image "looks correct")
는, I는 다음 헤더가 기술 참조 :
ImageWidth (1 Short): 2868
ImageLength (1 Short): 2048
BitsPerSample (1 Short): 16
Compression (1 Short): LZW
Photometric (1 Short): MinIsBlack
StripOffsets (2048 Long): 16, 808, 1584, 2388, 3202, 4053, 4889, 5718,...
Orientation (1 Short): TopLeft
SamplesPerPixel (1 Short): 1
RowsPerStrip (1 Short): 1
StripByteCounts (2048 Long): 792, 776, 804, 814, 851, 836, 829, 855, 830,...
XResolution (1 Rational): 115
0 (0 NoType):
1 (2051838 NoType):
그래서 I 그 XRESOLUTION가 정상적으로 작성된 볼 수 그러나 YRESOLUTION 및 RESOLUTIONUNIT가 누락되었습니다.
내가 뭘 잘못하고 있는지 알기!
편집 : TIFFGetField를 사용하여 값을 검색하기 위해 TIFFSetField를 사용한 후에 시도했습니다. 검색된 값이 정확하기 때문에 TIFFClose 중에 물건을 썼을 때 손상된 것처럼 보입니다.
감사합니다.