【问题标题】:Zooming multiple images at once javafx一次缩放多个图像javafx
【发布时间】:2018-01-24 09:19:06
【问题描述】:

语言:Java FX

目标是使缩放功能正常工作(数字和平铺缩放)。 通过平铺缩放,我的意思是加载与正在缩放的​​区域相对应的下一组图像。

请帮助::: Java FX 方面的经验非常有限,因此很难继续进行

1. 我有一个缩放实现,它只是通过设置 图像视图的视口。

我们称之为数码变焦

imageView.setViewport(new Rectangle2D(x, y, width, height));

2. 缩放的另一种实现是根据缩放请求,下一组 将加载实际上代表缩放区域的图像。

我们称之为磁贴缩放

for (int xNavigation = xWindowStart; xNavigation <= xWindowEnd; xNavigation++) {
                for (int yNavigation = yWindowStart; yNavigation <= yWindowEnd; yNavigation++) {
                    count++;
                    try {
                        image1 = new Image(new FileInputStream(
                                Constants.PATH_TILL_FOLDER + tileZoom + "/" + xNavigation + "_" + yNavigation + Constants.FILE_EXTESNION
                        ));
                        ImageView imageView1 = new ImageView();
//                        System.out.println("Zoom levels::::" + tileZoom);
                        imageView1.setX(xval);
                        imageView1.setY(yval);

                        imageView1.setFitHeight(image1.getHeight() * digitalZoomLevel);
                        imageView1.setFitWidth(image1.getWidth() * digitalZoomLevel);
                        imageView1.setPreserveRatio(true);
                        imageView1.setImage(image1);

                        root.getChildren().add(imageView1);
                        //System.out.println("X"+imageView1.getX());
                        //System.out.println("Y"+imageView1.getY());

                        yval = yval + image1.getHeight() ;

//                        System.out.println("Going to paint image :" + xNavigation + "-" + yNavigation);

                    } catch (FileNotFoundException ex) {
                        Logger.getLogger(DataZoom.class.getName()).log(Level.SEVERE, null, ex);
                    }

                }
                yval = 0;
                xval = xval + image1.getWidth();

            }
            System.out.println("Number of images painted tile" + count);
            System.out.println("Tile Zoom");

我的问题是第一个解决方案仅支持 1 个图像。如何 我会处理多张图片的数字变焦吗???。

为什么要缩放多张图片?例如:一组图像的蒙娜丽莎图片。

【问题讨论】:

    标签: java image javafx zooming tile


    【解决方案1】:

    不确定我是否正确地理解了您的问题。为什么要一次放大多张图片?

    无论如何,如果您想这样做,您将需要使用线程,这可能会导致您加载图片的方式出现一些问题。

    或者您可以通过小步骤更新图片并在每一步之后对另一张图片执行相同操作来“假装”为多线程。在这种情况下,您需要一个额外的循环来为您完成这项工作。

    现在,如果您想一次只放大一张图片,但在窗口中有多张图片,那么问题很容易解决。您只需要实现当前关注的是哪个图像。

    【讨论】:

    • 。例如:一组图像的蒙娜丽莎图片。现在我需要像单个图像一样缩放它
    • 好吧,这很棘手。您需要创建一个算法,在放大和缩小后计算每个图像的新位置。计算不是真正的问题,但优化该过程需要一段时间
    • 没错,我想知道是否有任何简单的出路;-)
    猜你喜欢
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    相关资源
    最近更新 更多