From 655fbb6275e5e83c2a12de2bc696e44966849752 Mon Sep 17 00:00:00 2001
From: Christopher Rhodes <christopher.rhodes@embl.de>
Date: Mon, 3 Jun 2024 15:35:55 +0200
Subject: [PATCH] RoiSet can now return and export two-channel images as both
 TIFs and PNGs

---
 model_server/base/roiset.py | 2 +-
 tests/test_roiset.py        | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/model_server/base/roiset.py b/model_server/base/roiset.py
index df00d2b1..11deff15 100644
--- a/model_server/base/roiset.py
+++ b/model_server/base/roiset.py
@@ -427,7 +427,7 @@ class RoiSet(object):
 
         def _export_patch(roi):
             patch = InMemoryDataAccessor(roi.patch)
-            ext = 'tif' if make_3d or patch.chroma > 3 else 'png'
+            ext = 'tif' if make_3d or patch.chroma > 3 or kwargs.get('force_tif') else 'png'
             fname = f'{prefix}-la{roi.label:04d}-zi{roi.zi:04d}.{ext}'
 
             if patch.dtype is np.dtype('uint16'):
diff --git a/tests/test_roiset.py b/tests/test_roiset.py
index 326d874d..24078720 100644
--- a/tests/test_roiset.py
+++ b/tests/test_roiset.py
@@ -304,7 +304,7 @@ class TestRoiSetMultichannelProducts(BaseTestRoiSetMonoProducts, unittest.TestCa
         self.assertEqual(result.chroma, 1)
 
     def test_multichannel_to_color_2d_patches(self):
-        chs = [0, 2, 4, 1]
+        chs = [0, 2,]
         where = output_path / 'multichannel' / 'color_2d_patches'
         self.assertGreater(self.roiset.acc_raw.chroma, 1)
         patches_acc = self.roiset.get_patches_acc(channels=chs)
@@ -316,11 +316,11 @@ class TestRoiSetMultichannelProducts(BaseTestRoiSetMonoProducts, unittest.TestCa
             draw_bounding_box=True,
             expanded=True,
             pad_to=256,
+            force_tif=True,
         )
         result = generate_file_accessor(where / df_res.patch_path.iloc[0])
         self.assertEqual(result.chroma, len(chs))
 
-
     def test_multichannnel_to_mono_2d_patches_rgb_bbox(self):
         where = output_path / 'multichannel' / 'mono_2d_patches_rgb_bbox'
         df_res = self.roiset.export_patches(
-- 
GitLab