2012-10-26 23 views
1

我想使用漸進雙三次方法將較大的1920x1080緩衝圖像縮放爲較小的200x200大小。 我從1024x768開始,縮小到接近原始的80%,然後想要以某種格式在某處存儲此臨時圖像,以便在下一次迭代中,我再次對此圖像執行縮放至80%,並繼續該過程直到我獲得200x200圖像,我最終顯示在我的JFrame上。如何在縮放java圖形期間存儲臨時緩衝圖像

什麼是方法或方法來存儲這個TEMP圖像?或者任何人都可以提供一個簡單的方法來實現這個漸進的雙標尺寸。

期望代碼類似於這樣(儘管它需要各種修改,我只需要的方式來存儲臨時圖像)

int sizew=1920,sizeh=1080; 
    int deltaw = (int)(0.20 *1920); 
    int deltah= (int)(0.20*1920); 
    while(sizew>200&&sizeh>200) 
    { 
     sizew=sizew-deltaw; 
     sizeh=sizeh-deltah; 
     if(sizew<200||sizeh<200) 
     { 
      sizew=200; 
      sizeh=200; 
      temp=new BufferedImage(sizew,sizeh,BufferedImage.TYPE_INT_RGB); 
        //but using this how would i give reference to my original 1920x1080 image or temp image??? 
      break; 
     } 
     else 
      temp=new BufferedImage(sizew,sizeh,BufferedImage.TYPE_INT_RGB); 
    }  
+0

請不要吼我們,我們(我們大多數人,至少)都不會失明:-) – kleopatra

+0

@kleopatra:先生髮生了什麼事?我做錯了什麼? –

+0

女士,所有大寫字母的句子都很難理解(相當於喊:-)) – kleopatra

回答

1

不容易的任務;這裏的蠻力方法的概述:

平鋪圖像轉換成使用適合於源的有效途徑管理的部分,例如

  • 的Java getSubImage(),看到here
  • Ossim,專爲大地測量數據設計,但可用於圖像。

重新取樣通過預期用途必要的,例如

  • AffineTransform,使用TYPE_NEAREST_NEIGHBOR看出here,瓦片。可以是scripted

重新裝配瓷磚;該方法取決於目的地。