0
다음 코드를 사용하여 LibTiff.net 라이브러리를 사용하여 Tiff 이미지의 일부를 자르지 만 이미지 색상이 false 또는 pseudo colors로 변경되었습니다. 측광 태그를 YCBCR이나 Pallete와 같은 다른 가능한 매개 변수로 변경하려했지만 결과는 비슷했습니다. 원본 이미지와 잘린 이미지가 코드 아래에 첨부됩니다. 이 문제를 해결하는 데 도움이되는 아이디어가 있으면 알려주세요.LibTiff.net을 사용하여 tiff 파일을자를 때 이미지 색상 변경
using (input)
{
int scanlineSize = input.ScanlineSize();
byte[][] buffer = new byte[height][];
int yy = height/hRatio;
int xx = width/wRatio;
int yEnd = yo + yy;
// read
int k = 0;
for (int i = yo; i < yEnd ; i++)
{
buffer[k] = new byte[scanlineSize];
input.ReadScanline(buffer[k], i);
k++;
}
// write
byte[][] bigHolder = new byte[height][];
byte[][] holder = new byte[yy][];
using (Tiff output = Tiff.Open("output.tif", "w"))
{
output.SetField(TiffTag.SAMPLESPERPIXEL, samplesPerPixel);
output.SetField(TiffTag.IMAGEWIDTH, xx);
output.SetField(TiffTag.IMAGELENGTH, yy);
output.SetField(TiffTag.BITSPERSAMPLE, bitsPerSample);
output.SetField(TiffTag.ROWSPERSTRIP, output.DefaultStripSize(0));
output.SetField(TiffTag.PHOTOMETRIC, photo);
output.SetField(TiffTag.PLANARCONFIG, PlanarConfig.CONTIG);
int j = 0;
int w = scanlineSize/wRatio;
for (int i = 0; i < yy; i++)
{
bigHolder[i] = buffer[i].Skip(xo).ToArray();
holder[i] = bigHolder[i].Take(w).ToArray();
output.WriteScanline(holder[i], j);
j++;
}
}
}
iriginak 및 잘린 이미지의 TiffTag.PHOTOMETRIC 및 TiffTag.COMPRESSION 태그 값은 무엇입니까? – Bobrovsky
getField를 사용하여 입력 이미지에서 TiffTag.PHOTOMETRIC을 가져 와서 출력 이미지에서 바꿉니다. 또한, 내 입력 이미지에 압축 모드가 없습니다. 나는 색깔을 바꾸는 관계가 있다는 것을 알았다. 입력 및 출력 이미지를 볼 때 Red가 Green, Green이 Blue, Red가 Blue로 변환됩니다. –