Skip to content

Commit 2f05bc1

Browse files
committed
Use pixel units for PNG and JPG, mobie/mobie-viewer-fiji#1247
1 parent c654ca6 commit 2f05bc1

2 files changed

Lines changed: 64 additions & 6 deletions

File tree

src/main/java/org/embl/mobie/io/imagedata/BioFormatsImageData.java

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,33 @@ public BioFormatsImageData( String uri, SharedQueue sharedQueue )
2727
public AbstractSpimData< ? > open( String uri )
2828
{
2929
final File file = new File( uri );
30-
List< OpenerSettings > openerSettings = new ArrayList<>();
30+
31+
String lowerCaseUri = uri.toLowerCase();
32+
33+
boolean usePixelUnits =
34+
( lowerCaseUri.endsWith( ".png" )
35+
|| lowerCaseUri.endsWith( ".jpg" )
36+
|| lowerCaseUri.endsWith( ".jpeg" ) )
37+
? true : false;
38+
39+
usePixelUnits = false;
40+
41+
List< OpenerSettings > settingsList = new ArrayList<>();
3142
int numSeries = BioFormatsHelper.getNSeries(file);
43+
3244
for (int i = 0; i < numSeries; i++) {
33-
openerSettings.add(
34-
OpenerSettings.BioFormats()
35-
.location(file)
36-
.setSerie(i) );
45+
OpenerSettings settings = OpenerSettings.BioFormats()
46+
.location( file )
47+
.setSerie( i )
48+
.useBFMemo( false );
49+
50+
if ( usePixelUnits )
51+
settings.unit( "pixel" );
52+
53+
settingsList.add( settings );
3754
}
3855

39-
return OpenersToSpimData.getSpimData( openerSettings );
56+
return OpenersToSpimData.getSpimData( settingsList );
4057
}
4158
} );
4259
this.uri = uri;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package org.embl.mobie.io.imagedata;
2+
3+
import bdv.cache.SharedQueue;
4+
import mpicbg.spim.data.sequence.VoxelDimensions;
5+
import org.embl.mobie.io.ImageDataFormat;
6+
import org.embl.mobie.io.ImageDataOpener;
7+
import org.junit.jupiter.api.Test;
8+
9+
import static org.junit.jupiter.api.Assertions.assertEquals;
10+
import static org.junit.jupiter.api.Assertions.assertNotNull;
11+
12+
class BioFormatsImageDataTest
13+
{
14+
@Test
15+
public void openPNG()
16+
{
17+
ImageData< ? > imageData = ImageDataOpener.open(
18+
"src/test/resources/images/boats.png",
19+
ImageDataFormat.fromPath( "src/test/resources/images/boats.png" ),
20+
new SharedQueue( 1 ) );
21+
VoxelDimensions voxelDimensions = imageData.getSourcePair( 0 ).getB().getVoxelDimensions();
22+
assertEquals( "px", voxelDimensions.unit() );
23+
}
24+
25+
@Test
26+
public void openIlastikSavedByIlastik()
27+
{
28+
ImageData< ? > imageData = ImageDataOpener.open(
29+
"src/test/resources/ilastik/probabilities-from-ilastik.h5",
30+
ImageDataFormat.fromPath( "src/test/resources/ilastik/probabilities-from-ilastik.h5" ),
31+
new SharedQueue( 1 ));
32+
VoxelDimensions voxelDimensions = imageData.getSourcePair( 0 ).getB().getVoxelDimensions();
33+
assertNotNull( voxelDimensions );
34+
}
35+
36+
public static void main( String[] args )
37+
{
38+
new BioFormatsImageDataTest().openPNG();
39+
}
40+
41+
}

0 commit comments

Comments
 (0)