diff options
author | Thomas White <taw@physics.org> | 2023-06-06 13:41:52 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2023-06-06 13:41:52 +0200 |
commit | 117ed0d0339163e04290349f9fe468b4bb6982e7 (patch) | |
tree | b96e7dfb22cb27d8272a21f155817f7eec257e3e /libcrystfel/src/image-seedee.c | |
parent | de407aa9fa93192aad6773a53fe51295d9c8cb8e (diff) | |
parent | b5550e4399415fe4863057d6cbd406faf3f2df31 (diff) |
Merge branch 'asapo-producer'
Diffstat (limited to 'libcrystfel/src/image-seedee.c')
-rw-r--r-- | libcrystfel/src/image-seedee.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/libcrystfel/src/image-seedee.c b/libcrystfel/src/image-seedee.c index 60153591..b4ae5179 100644 --- a/libcrystfel/src/image-seedee.c +++ b/libcrystfel/src/image-seedee.c @@ -84,6 +84,34 @@ static int load_seedee_data(struct panel_template *p, } } + } else if ( (array->datatype == 'u') + && (array->itemsize == 4) + && (array->byteorder == '<') ) + { + int fs, ss; + uint32_t *in_data = (uint32_t *)array->data; + + for ( ss=0; ss<PANEL_HEIGHT(p); ss++ ) { + for ( fs=0; fs<PANEL_WIDTH(p); fs++ ) { + size_t idx = fs+p->orig_min_fs + (ss+p->orig_min_ss)*data_size_fs; + data[fs+ss*PANEL_WIDTH(p)] = in_data[idx]; + } + } + + } else if ( (array->datatype == 'f') + && (array->itemsize == 8) + && (array->byteorder == '<') ) + { + int fs, ss; + double *in_data = (double *)array->data; + + for ( ss=0; ss<PANEL_HEIGHT(p); ss++ ) { + for ( fs=0; fs<PANEL_WIDTH(p); fs++ ) { + size_t idx = fs+p->orig_min_fs + (ss+p->orig_min_ss)*data_size_fs; + data[fs+ss*PANEL_WIDTH(p)] = in_data[idx]; + } + } + } else { ERROR("Unrecognised data type %c%i%c\n", array->datatype, array->itemsize, array->byteorder); |