2017-08-16 98 views
1

語言:Java FX一次縮放多個圖像javafx

目標是使縮放功能工作(數字和平鋪縮放)。 通過平鋪縮放,我的意思是加載下一組圖像對應的區域正在縮放。

請幫助的Java FX :::經驗是非常有限的,因此發現很難進行

我有一個變焦實現這只不過是通過設置 視口圖像視圖。

允許調用該數字變焦

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個圖像。如何 我將處理多個圖像的數碼變焦?

爲什麼要放大多個圖像?例如:monalisa圖片由一組圖片組成。

回答

0

不知道我是否正確地解決了您的問題。爲什麼要一次放大多張圖片?

無論如何,如果你想這樣做,你將需要使用線程,這可能會導致您加載圖片的方式出現問題。

或者你可以通過小步驟更新圖片來「假裝」爲多線程,並且在每一步之後都可以與另一張圖片相同。在這種情況下,您需要一個額外的循環來爲您完成這項工作。

現在,如果您只想一次放大一張圖片,但窗口內有多張圖片,問題很容易解決。你只需要實現當前關注它的圖像。

+0

。例如:monalisa圖片由一組圖片組成。現在我需要將它縮放爲像一個圖像 – Gerrard

+1

好吧,這相當棘手。您需要創建一種算法,以便在放大和縮小時計算每個圖像的新位置。計算不是真正的問題,但優化該過程需要一段時間 –

+0

確切的人,我想知道是否有任何簡單的出路;-) – Gerrard