@@ -235,13 +235,18 @@ def run(
235
235
data_ptr = ri .set_input_array (mv , index , 0 )
236
236
dv = array_like_to_bytes (image .direction )
237
237
direction_ptr = ri .set_input_array (dv , index , 1 )
238
+ metadata = []
239
+ if image .metadata :
240
+ for key , value in image .metadata .items ():
241
+ metadata .append ((key , value ))
238
242
image_json = {
239
243
"imageType" : asdict (image .imageType ),
240
244
"name" : image .name ,
241
245
"origin" : image .origin ,
242
246
"spacing" : image .spacing ,
243
247
"direction" : f"data:application/vnd.itk.address,0:{ direction_ptr } " ,
244
248
"size" : image .size ,
249
+ "metadata" : metadata ,
245
250
"data" : f"data:application/vnd.itk.address,0:{ data_ptr } " ,
246
251
}
247
252
ri .set_input_json (image_json , index )
@@ -427,6 +432,12 @@ def run(
427
432
elif output .type == InterfaceTypes .Image :
428
433
image_json = ri .get_output_json (index )
429
434
435
+ if 'metadata' in image_json and isinstance (image_json ['metadata' ], list ):
436
+ metadata = image_json ['metadata' ]
437
+ image_json ['metadata' ] = {}
438
+ for key , value in metadata :
439
+ image_json ['metadata' ][key ] = value
440
+
430
441
image = Image (** image_json )
431
442
432
443
data_ptr = ri .get_output_array_address (0 , index , 0 )
0 commit comments