我試圖用JavaFX編寫一個拼圖遊戲,部分原因是有人問我,部分是因爲我想給JavaFX一個去。但是,我在實際裁剪圖像時遇到了困難。JavaFX中的有效圖像裁剪
這個想法是爲用戶提供圖像和程序,將圖像切成小塊。很簡單,對吧?我的問題是這樣的:我能找到削減圖像的唯一方法是使圖像對象的副本,改變副本的可見部分,這裏有一個例子:
ImageView imgageView = new ImageView(); // Creates a new ImageView; this will be a single puzzle piece.
imgageView.setImage(originalImage); // Use the original image as the "base."
Rectangle2D rectangle = new Rectangle2D(0, 0, 50, 50); // Crop the image from (0,0) to (50, 50).
只是爲了澄清的最後一行,這裏的related piece in the API:
public Rectangle2D(double minX,
double minY,
double width,
double height)
Creates a new instance of Rectangle2D.
Parameters:
minX - The x coordinate of the upper-left corner of the Rectangle2D
minY - The y coordinate of the upper-left corner of the Rectangle2D
width - The width of the Rectangle2D
height - The height of the Rectangle2D
現在,這是好的,如果我切割畫面分爲四或九件(遊戲是爲年幼的孩子),但如果我想將圖片裁剪成漂亮1200塊拼圖?這不會導致一個非常昂貴的操作?不僅裁剪本身,而且要在內存中保留很多圖像副本。看看,如果我正確地理解了這一點,那麼每件作品都將包含整個原始圖像,其中大部分將保持「隱藏」。
我只是誤解了函數?如果沒有,那麼一定有更好的方法來做到這一點,對吧?
感謝您的回答,我實際上已經忘記了這個問題。 – NotMyName 2013-03-26 14:02:49