首页 > 解决方案 > 如何将 PlanarImage 或 BufferedImage (JAI) 转换为 Image (JavaFX)

问题描述

在使用 JAI 操作之后,我正在尝试更改 ImageView 实例中表示的图像。JAI 可以输出 PlanarImage、RenderedImage(non-awt) 或 BufferedImage(non-awt),但这些不是 ImageView 构造的有效类型。

import java.awt.image.renderable.ParameterBlock;
import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.control.ScrollPane;
import javafx.scene.image.ImageView;
import javafx.scene.image.Image;
import javafx.stage.Stage; 
import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;
import javax.media.jai.Interpolation;

public class A11 extends Application{

  int zoom = 100;
  ImageView img = new ImageView();
  Image src = new Image("file.bmp");

  public static void main(String args[]){
    launch(args); // start application
  }

  @Override 
  public void start(Stage window){
    ParameterBlock pb = new ParameterBlock();
    pb.addSource(src); // source Image
    pb.add(zoom/100); // xScale
    pb.add(zoom/100); // yScale
    pb.add(0.0F); // xTranslate
    pb.add(0.0F); // yTranslate
    pb.add(Interpolation.getInstance(Interpolation.INTERP_BICUBIC));
    PlanarImage dest = JAI.create("scale", pb, null);

    // NEED TO CONVERT 'dest' TO 'destImage' HERE

    ImageView frame = new ImageView(destImage);
    ScrollPane pane = new ScrollPane(frame);
    window.setScene(new Scene(pane,800,600));
    window.show(); 
  }
}

标签: image-processingjavafxjai

解决方案


推荐阅读