有一件事,我注意到圖像質量不增加或減少尺寸時不會鬆動。
如果是這種情況,那麼圖像是一種矢量格式,比如SVG-PNG和JPEG圖像在增大尺寸時將始終失去它們的質量,因爲像素會被拉伸。有辦法可以緩解這種情況,但無法完全規避它。
如果你想裝出質量不過擴展Java中的圖像,你可以合理地得到:
BufferedImage scaled = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB);
AffineTransform at = new AffineTransform();
at.scale(2.0, 2.0);
AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC);
BufferedImage scaledImage = scaleOp.filter(img, scaled);
,確定圖像是如何縮放的關鍵部分是AffineTransformOp.TYPE_BICUBIC
,這通常提供了最好的結果(儘可能地,無論如何。)C#無疑會有一個類似的開關,可以設置。比例因子由at.scale(2.0, 2.0);
給出,它將長度和高度增加兩倍 - 如果您想要將尺寸減小一半,請使用at.scale(0.5, 0.5)
。
無論您更改圖像的大小,將其大小模式屬性設置爲普通或自動大小。 –
你可以看看[this](http://stackoverflow.com/questions/11959758/java-maintaining-aspect-ratio-of-jpanel-background-image/11959928#11959928) – MadProgrammer