Как загрузить часть изображения * .tif без загрузки этого изображения в память.Как загрузить часть изображения TIFF без загрузки всего изображения в память?
Мне нужно работать с большими файлами TIFF. (> 4 ГБ). Я попытался прочитать этот файл, используя BinaryReader
, и используя BitMiracle.LibTiff.Classic
для преобразования байтов в изображение. Но я не нашел примера, как читать определенный пиксель в файле TIFF.
Возможно, у вас есть решение этой задачи.
Допустим, у меня есть BigScan.tif
файл, и он всегда:
Image Compression - NONE
Pixel Order - Interleaved (RGBRGB)
Byte Order - IBM PC
У меня есть переменная:
ImagePart with User Defined Width
ImagePart with User Define Height
ImagePArt with User Defined Location
Вопрос в том, как я мог получить ImagePart
от BigScan.tif
?
Но было бы лучше иметь возможность считывать информацию о пикселе в «BigScan.tif» с (x, y) coorinates.
мне нужно прочитать пиксель из BigScan.tif
в определенном месте, с такой функцией:
public Color GetPixelColorFromTiffImage(string TiffFileName, int PixelPositionX, int PixelPositionY)
{
//Some Code
return returnedColor;
}
Очень странно, но поддержка did`t unswer мой quastion. Может быть, кто-то это знает. Зачем дозировать эту часть кода от BitMiracle Samples, пишет «номера растра», такие как «-11512229», «-11838376» и так далее.
using (Tiff image = Tiff.Open(fullImageLocation, "r"))
{
// Find the width and height of the image
FieldValue[] value = image.GetField(TiffTag.IMAGEWIDTH);
width = value[0].ToInt();
value = image.GetField(TiffTag.IMAGELENGTH);
height = value[0].ToInt();
int imageSize = height * width;
int[] raster = new int[imageSize];
// Read the image into the memory buffer
if (!image.ReadRGBAImage(width, height, raster))
{
MessageBox.Show("Could not read image");
}
using (Bitmap btm = new Bitmap(200, 200))
{
for (int i = 0; i < btm.Width; ++i)
for (int j = 0; j < btm.Height; ++j)
btm.SetPixel(i, j, getSample(i + 330, j + 30, raster, width, height));
ReternedBitmap = btm;
}
}//using
Помогает ли это? http://bitmiracle.com/libtiff/help/how-to-read-tiff-scanlines-in-a-random-fashion.aspx –
Ну, я видел эту страницу. Но мне все еще интересно, как это может помочь. Как, используя это, можно установить положение пикселя и прочитать его данные из основного файла tif? –
Это позволяет вам читать любое количество масштабируемых изображений - так что вы можете, по крайней мере, выбрать диапазон строк (координата y), даже если вам нужно взять полную ширину (координата x) - может быть, это помогает? –