Create a new band duplicated from source band.
Memory is allocated for band path (if band is offline) or band data (if band is online). The caller is responsible for freeing the memory when the returned rt_band is destroyed.
- Parameters
-
- Returns
- an rt_band or NULL on failure
Memory is allocated for band path (if band is offline) or band data (if band is online). The caller is responsible for freeing the memory when the returned rt_band is destroyed.
- Parameters
-
- Returns
- an rt_band or NULL on failure
Definition at line 287 of file rt_band.c.
287 {
289
290 assert(band != NULL);
291
292
298 band->data.offline.bandNum, (
const char *)
band->data.offline.path
299 );
300 }
301
302 else {
303 uint8_t *
data = NULL;
305 if (data == NULL) {
306 rterror(
"rt_band_duplicate: Out of memory allocating online band data");
307 return NULL;
308 }
310
315 data
316 );
318 }
319
320 if (rtn == NULL) {
321 rterror(
"rt_band_duplicate: Could not copy band");
322 return NULL;
323 }
324
325 return rtn;
326}
void rterror(const char *fmt,...)
Wrappers used for reporting errors and info.
void * rtalloc(size_t size)
Wrappers used for managing memory.
int rt_pixtype_size(rt_pixtype pixtype)
Return size in bytes of a value in the given pixtype.
rt_band rt_band_new_inline(uint16_t width, uint16_t height, rt_pixtype pixtype, uint32_t hasnodata, double nodataval, uint8_t *data)
Create an in-db rt_band with no data.
void rt_band_set_ownsdata_flag(rt_band band, int flag)
rt_band rt_band_new_offline(uint16_t width, uint16_t height, rt_pixtype pixtype, uint32_t hasnodata, double nodataval, uint8_t bandNum, const char *path)
Create an out-db rt_band.
References rt_band_new_inline(), rt_band_new_offline(), rt_band_set_ownsdata_flag(), rt_pixtype_size(), rtalloc(), and rterror().
Referenced by rt_raster_copy_band().