放大圖像不會導致失真腔冊,而縮小圖像將不可避免的失真。
Java中也同樣是這樣伍激宏。
但java提供了4個縮放的微調選項。
image.SCALE_SMOOTH
//平滑優先
image.SCALE_FAST//速度優先
image.SCALE_AREA_AVERAGING
//區域均值
image.SCALE_REPLICATE
/鉛爛/像素復制型縮放
image.SCALE_DEFAULT
//默認縮放模式
調用方法
Image
new_img=old_img.getScaledInstance(1024,
768,
Image.SCALE_SMOOTH);
得到一張縮放後的新圖。
② 滑鼠經過的地方,java圖片局部放大代碼
這個最好是用js做吧,邏輯強,實用性好!
③ java drawImage 如何實現旋轉和縮放
這個函數可以縮放,不能旋轉。頭四個數是畫到什麼地方,後四個數是畫那幅圖的哪個部分,也就是可以光畫圖的一半等等。
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
AffineTransform at = new AffineTransform();
double angle = Math.PI;
at.rotate(angle);
int transX = 100;
int transY = 100;
at.translate(transX, transY);
Image img = new BufferedImage();
g2.drawImage(img, at, null);
}
④ java怎麼實現通過滑鼠滾輪對圖片進行等比例縮放功能
給你個實例吧
public class Anniu extends JFrame implements MouseWheelListener {
private static final long serialVersionUID = 1L;
JLabel jl = null;
ImageIcon image = new ImageIcon("F://12.jpg");
public Anniu() {
}
public void init() {
setLayout(null);
jl = new JLabel(image);
setSize(800, 600);
jl.setBounds(300, 200, 200, 200);
add(jl);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addMouseWheelListener(this);
setVisible(true);
}
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
// TODO Auto-generated method stub
int num = e.getWheelRotation();
int x = (this.getWidth() - jl.getWidth()) / 2;
int y = (this.getHeight() - jl.getHeight()) / 2;
int width=jl.getWidth()+ 2 * num;
int height=jl.getHeight()+ 2 * num;
jl.setIcon(new ImageIcon( image.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH))); //重點1:按所給的大小來設置圖片,不管圖片有多大,總是全圖顯示,可能導致失真!你可以加一個大小限制,超過圖片大小了則不再放大。
jl.setBounds(x + num, y + num, width, height);
this.repaint(); //刷新屏幕
}