Какие форматы изображений поддерживает JavaFX?
Я ищу список типов изображений (последние) поддержка JavaFX, например PNG, JPEG, TIFF. Разные поисковики не помогли ... есть идеи, с чего начать?
более подробно меня интересуют 16-битные изображения в оттенках серого (в разных форматах) и редкий поддерживаемый стандарт jpg-без потерь.
1 ответов
список ниже был создан на основе параметров, которые Fireworks и Photoshop позволяют Save As:
плюс несколько выбранных мной форматов, учитывая то, что обычно встречается и что имеет некоторую поддержку на ImageJ.
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 ✘ ✘
этот тест был сделан на Windows 8.1 с:
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)
исходный код, используемый для создания этого списка:
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);
}
}