我找不到我的問題的任何解決方案,希望你能幫助我。我有一個緩衝圖像(例如img),並且我想調整它(使用其像素數組)以恰好適合100px(100 x 100)。我發現的所有解決方案都是爲了在繪圖時「拉伸」圖像,但我真的需要這個數組。 我想到了一個算法,這嘗試之一:BufferedImage的大小調整算法
BufferedImage resized = new BufferedImage(100,100,BufferedImage.TYPE_INT_ARGB);
for(int i = 0; i < img.getWidth(); i++){
for(int j = 0; j < img.getHeight(); j++){
resized.setRGB(i*(100/img.getWidth()), j*(100/img.getHeight()), img.getRGB(i, j));
}
}
我無法解釋它(當然,不是英文)它做什麼,但我想你可以很容易地看到它(在原始圖像中的每個像素( IMG),把它放在新的BufferedImage(調整)在postition(老位置*調整因素)。(希望這是一個很好的說明)。 但是但是,它不工作,我只得到零:( 有人能告訴我要修改什麼,或給我一個算法的其他例子?(不管它有多快,只要我能理解它)
(我真的希望它不是轉發,因爲我真的不能f IND另一個問題/解決方案,目的是在陣列調整:/)
問候:)
我不是在圖像方面的專家,但我認爲你會對此有所倒退。試着將'i'和'j'在從0到100的'resized'索引上迭代。然後使用縮放因子將'resize [i] [j]'設置爲'img'中的一個像素。 –
這個問題是否重複? http://stackoverflow.com/questions/9417356/bufferedimage-resize –
即使你「真的需要數組」(我不明白爲什麼,從你的代碼中),它會*更快*只是使用' AffineTransformOp'並使用'TYPE_NEAREST_NEIGHBOR'向下採樣圖像。如果需要,您仍然可以從生成的圖像中獲取支持數組。 – haraldK