// Load a buffer into a zImg template <typename T> void CntZImgFill(CntZImage &zImg, T *src, const ILImage &img) { int w = img.pagesize.x; int h = img.pagesize.y; zImg.resize(w, h); T *ptr = src; // No data value float ndv = float(img.NoDataValue); if (!img.hasNoData) ndv = 0; for (int i = 0; i < h; i++) for (int j = 0; j < w; j++) { zImg(i, j).z = float(*ptr++); zImg(i, j).cnt = !CPLIsEqual(zImg(i, j).z, ndv); } return; }