我正在使用Grails開發Web相冊,並且正在使用grails-image-tools插件進行圖像處理。如果上傳的圖片尺寸太大(例如:超過600 * 840),我需要一項功能來調整圖片大小。在這種情況下,我需要將此圖像調整爲600 * 840)。什麼是最有效的方法來做到這一點?非常感謝。Grails中的圖像大小調整
12
A
回答
7
import java.awt.Image as AWTImage
import java.awt.image.BufferedImage
import javax.swing.ImageIcon
import javax.imageio.ImageIO as IIO
import java.awt.Graphics2D
static resize = { bytes, out, maxW, maxH ->
AWTImage ai = new ImageIcon(bytes).image
int width = ai.getWidth(null)
int height = ai.getHeight(null)
def limits = 300..2000
assert limits.contains(width) && limits.contains(height) : 'Picture is either too small or too big!'
float aspectRatio = width/height float requiredAspectRatio = maxW/maxH
int dstW = 0
int dstH = 0
if (requiredAspectRatio < aspectRatio) {
dstW = maxW dstH = Math.round(maxW/aspectRatio)
} else {
dstH = maxH dstW = Math.round(maxH * aspectRatio)
}
BufferedImage bi = new BufferedImage(dstW, dstH, BufferedImage.TYPE_INT_RGB)
Graphics2D g2d = bi.createGraphics() g2d.drawImage(ai, 0, 0, dstW, dstH, null, null)
IIO.write(bi, 'JPEG', out)
}
1
使用ImageTool插件。 http://grails.org/ImageTools+plugin
+0
任何想法,如果它與Grails 2兼容?是否需要從git構建自己,還是最新發布的0.1版本也在工作? – 2012-10-17 18:12:20
12
在BuildConfig.groovy
添加一個依賴於imgscalr
dependencies {
compile 'org.imgscalr:imgscalr-lib:4.1'
}
然後調整圖像大小變成一個班輪:
BufferedImage thumbnail = Scalr.resize(image, 150);
相關問題
- 1. 圖像的大小調整
- 2. Grails中的圖像上傳調整大小和裁剪
- 3. 在Java中調整圖像大小以縮小圖像大小
- 4. 圖像未調整大小
- 5. 調整jpeg圖像大小?
- 6. codeigniter圖像調整大小
- 7. Phalcon圖像調整大小
- 8. JavaFx圖像調整大小
- 9. ckfinder圖像調整大小
- 10. 圖像調整大小Codeigniter
- 11. 調整圖像大小。 。 。 。
- 12. 圖像調整大小Java
- 13. 調整圖像大小
- 14. 調整圖像大小
- 15. 調整圖像大小5
- 16. php調整大小圖像
- 17. imageWithContentsOfFile調整圖像大小
- 18. 調整圖像大小
- 19. Opencart - 圖像調整大小
- 20. Kraken.io圖像調整大小
- 21. wordpress調整大小圖像
- 22. 調整大小。GIF圖像
- 23. iphone圖像大小調整
- 24. 調整圖像大小
- 25. 調整圖像大小
- 26. Magick.Net調整圖像大小
- 27. 調整圖像大小
- 28. CSS圖像大小調整
- 29. PIL調整大小圖像
- 30. 調整圖像大小,笨
這個旋轉圖像雖然.... – hvgotcodes 2011-05-05 19:55:06
@hvgotcodes老問題,但是發生這種情況的原因是因爲圖像並沒有真正旋轉 - 它只是具有指示照片瀏覽器(如瀏覽器)顯示旋轉圖像的EXIF數據。有些相機(尤其是手機)會這樣做,而不是實際旋轉圖像。由於圖像沒有真正旋轉,並且Java API不查看EXIF旋轉數據,因此圖像看起來似乎旋轉了,儘管實際上並非如此。這是[例子](https://gist.github.com/9re/1990019)代碼,檢查EXIF數據並相應地旋轉。 – 2013-06-25 13:54:18