我正嘗試用Java重新調整圖像的大小,並且我需要獲得使用Photoshop最近鄰居(保留硬邊)重新調整大小時發生的確切效果。Java圖像大小調整 - 最近的鄰居
的事情是我從來沒有得到確切的同樣的效果......
我嘗試以下方法:
1)Java的圖像規模由mortennobel lib
resampleOp.setFilter(ResampleFilters.getBoxFilter());
這個執行很大,但在圖像中留下了一些文物,當photoshop使用它時不存在。
2)用於圖像處理的十二個圖像庫。 (here is the github link) 沒有工作,PointFilter完全破壞了裏面的漸變,而Box過濾器和mortennobel getBoxFilter做同樣的事情。
3)AWT AffineTransform,這是最糟糕的一個,完全不切實際的調整大小。
現在我很迷茫,不Photoshop的近鄰重新大小不同又是什麼名字的意思,或其他所有的庫做是錯誤的(在第二種情況下,那是什麼都將做正確的lib?)
這裏是之前和之後的圖像生成的Photoshop
這裏是從mortennobel LIB由get BoxFilter產生的圖像。
我縮放圖像有點激動,所以你可以看到細節,實際上它們是較小的。 任何幫助真的很感激:)我真的堅持這一點。
mortennobel圖書館使用箱式過濾器,因此不是您要求的 - 最近的鄰居。你有沒有考慮自己編寫代碼?在沒有任何過濾的情況下迭代原始圖像像素並不困難。 – usr2564301 2014-09-21 11:39:40
嗯..我以爲盒式過濾器和最近的鄰居是一樣的。那麼我已經考慮過了,但是我認爲它可能會很慢,另外,應該有一個lib來做這件事嗎?而不是花哨的過濾器使用簡單的過濾器,這就是我想要的。我覺得Photoshop有另一個名字,如果我知道它,我會找到正確的lib。 – 2014-09-21 11:44:49
您可能想要解釋使用'RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR'的結果與您想要達到的結果的差異(另請參閱https://today.java.net/pub/a/today/2007/04/03/ perl-image-getscaledinstance.html#creating-scaled-instances) – Marco13 2014-09-21 12:35:58