作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的问题。我处理巨大的 tiff 图像(>4GB),当将它们全部加载到内存中时,我会填满 RAM,程序就会被终止。我尝试将它们保存为平铺 tiff,然后使用 libtiff 逐 block 加载它们,如下所示:
tdata_t buf = _TIFFmalloc(TIFFTileSize(tifSrc));
for(int i = 0;i< 20000;i+=128){
for(int j = 0;j< 20000;j+=128)
{
TIFFReadTile(tifSrc, buf , i, j, 0,0);
TIFFWriteTile(tifDst, (tdata_t)buf , i, j,0, 0);
}
}
_TIFFfree(buf);
但是,尽管我希望上述代码每次迭代仅在内存中加载一个图 block (128x128 字节),但整个图像都被存储了......有谁知道如何在内存中只加载一个图 block ?
最佳答案
要回答我自己的问题,您必须首先指定标签 TIFFTAG_TILEWIDTH 和 TIFFTAG_TILELENGTH,如下所示:
TIFFSetField(tiff, TIFFTAG_TILEWIDTH, (uint32)128);
TIFFSetField(tiff, TIFFTAG_TILELENGTH, (uint32)128);
然后读写函数成功并返回“0”,并且只有 128x128 的图 block 被加载到内存中!
关于c++ - 是否可以通过每次仅在内存中保存一个图 block 来处理完整的图 block tiff 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52720696/
我有 json 数据: { "products": [ { "productId" : 0, "productImg" : "../img/product-ph
我是一名优秀的程序员,十分优秀!