aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src
diff options
context:
space:
mode:
Diffstat (limited to 'libcrystfel/src')
-rw-r--r--libcrystfel/src/image-seedee.c28
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);