I am looking for a list of Image Types (latest) JavaFX supports, e.g. PNG, JPEG, TIFF. Different search engines did not help ... any idea where to start?
More particulary I am interested in 16 Bit grayscale images (in different formats) and the rare supported jpg-lossless standard.
The list below was generated based on the options that Fireworks and Photoshop allow one to Save As:
plus a few selected formats by me considering what is commonly found and that have some support on ImageJ.
Therefore the ✓ doesn't mean that the format is natively supported in ImageJ, but it means that it is possible to open in ImageJ even if it requires additional plugins. And this list is not a complete list of what is supported on ImageJ, for a more detailed one (including whether the support is native or through plugin please check this page)
File Format: bits details Native support ImageJ
PNG 32 fireworks format .fw.png ✓ ✓
32 flat format ✓ ✓
24 flat format ✓ ✓
8 flat format ✓ ✓
GIF 8 2 colours (black & white) ✓ ✓
8 16 colours ✓ ✓
8 256 colours ✓ ✓
JPG 24 Quality: 100% ✓ ✓
24 100% && Smoothing = 8 ✓ ✓
JPS (JPG Stereo) 24 ✓ ✓
MPO 24 ✓ ✓
TIFF 32 ✘ ✓
24 ✘ ✓
8 ✘ ✓
JPEG2000 ✘ ✓
EPS ✘ ✓
TGA ✘ ✓
RAW (photoshop) ✘ ✓
PSD ✘ ✓
FITs ✘ ✓
PGM (.pgm) ✘ ✓
PPM (.ppm) ✘ ✓
PBM (.pbm) ✘ ✓
DICOM ✘ ✓
NiFTI ✘ ✓
PICT ✘ ✓
ICO ✘ ✓
ANALYZE ✘ ✓
MOV ✘ ✓
SPE (.spe) ✘ ✓
PIC ✘ ✓
AVI (.avi) ✘ ✓
CUR ✘ ✓
PXR (Pixar) ✘ ✘
SCT (Scitex) ✘ ✘
IFF ✘ ✘
WBMP ✘ ✘
PDF ✘ ✘
This test was made on a Windows 8.1 with:
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
Source code used to create this list:
import java.io.File;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class JavaFXSupportedImages extends Application {
@Override
public void start(Stage primaryStage) {
File dir = new File("formats_supported_on_javaFX_folder");//Folder Path
File[] images = dir.listFiles();
GridPane root = new GridPane();
int col=0, row=0;
for(File f: images){
Button btn = new Button(f.getName());
try{
Image fximage = new Image(f.toURI().toURL().toString());
ImageView pic = new ImageView();
pic.setImage(fximage);
pic.setFitWidth(130);
pic.setFitHeight(50);
btn.setGraphic(pic);
}catch(Exception e){
System.out.println("JavaFX doesn't support: " + btn.getText());
}
if(col>3){
col=0;
row++;
}
else
{
col++;
}
root.add(btn, col, row);
}
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Support test!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}