LibTiff.net을 사용하여 바둑판 식 배열 된 Tiff의 일부를 자르고 바둑판 식 Tiff로 내보내지만 "바둑판 무늬 이미지에 타일 이미지를 쓸 수 없습니다"라는 문제가 발생했습니다. 은 "Tiff.open ("out.tif "," "w)가 제거 이미지를 만들 동안, 어떻게 타일 - 티파니 입력 데이터로 채우기 위해 만들 수 있습니까?LibTiff.net을 사용하여 바둑판 식 배열 한 Tiff 만들기
using (Tiff input = Tiff.Open(@"E:\Sample_04.tif", "r"))
{
int width = input.GetField(TiffTag.IMAGEWIDTH)[0].ToInt();
int height = input.GetField(TiffTag.IMAGELENGTH)[0].ToInt();
int tileWidth = input.GetField(TiffTag.TILEWIDTH)[0].ToInt();
int tileLentgh = input.GetField(TiffTag.TILELENGTH)[0].ToInt();
int samplesPerPixel = input.GetField(TiffTag.SAMPLESPERPIXEL)[0].ToInt();
int bitsPerSample = input.GetField(TiffTag.BITSPERSAMPLE)[0].ToInt();
int photo = input.GetField(TiffTag.PHOTOMETRIC)[0].ToInt();
int config = input.GetField(TiffTag.PLANARCONFIG)[0].ToInt();
int tiles = 0;
int tileSize = input.TileSize();
byte[][] buffer = new byte[tileSize][];
int tileHeightCount = height/tileLentgh;
int tileWidthCount = width/tileWidth;
for (int y = 0; y < tileLentgh*5; y += tileLentgh)
{
for (int x = 0; x < tileWidth*5; x += tileWidth)
{
buffer[tiles] = new byte[tileSize];
input.ReadTile(buffer[tiles], 0, x, y, 0, 0);
tiles++;
}
}
// writing
using (Tiff output = Tiff.Open("out.tif", "w"))
{
output.SetField(TiffTag.SAMPLESPERPIXEL, samplesPerPixel);
output.SetField(TiffTag.IMAGEWIDTH, width);
output.SetField(TiffTag.IMAGELENGTH, height);
output.SetField(TiffTag.BITSPERSAMPLE, bitsPerSample);
output.SetField(TiffTag.ROWSPERSTRIP, output.DefaultStripSize(0));
output.SetField(TiffTag.PHOTOMETRIC, photo);
output.SetField(TiffTag.PLANARCONFIG, config);
int c = 0;
for (int y = 0; y < tileLentgh*5; y += tileLentgh)
{
for (int x = 0; x < tileWidth*5; x += tileWidth)
{
output.WriteTile(buffer[c], x, y, 0, 0);
c++;
}
}
}
}
System.Diagnostics.Process.Start("555.tif");
}
을 나는 더 C# 또는 LibTiff.net 개발자는 아니지만, 나는'TiffTag.ROWSPERSTRIP를 설정한다고 가정 할 '필드는 이미지를 "박탈"시키는 것입니다.이 라인을 제거하면 어떻게됩니까? – haraldK
질문을하기 전에이 줄을 제거했는데 아무 일도 없었습니다. 당신의 힌트를 가져 주셔서 감사합니다. –
for 루프에서 'tileLength'와'tileWidth'를 5로 곱하는 이유는 무엇입니까? (표시되는 것보다 5 배 큰 타일입니까?) –