01/10/2018, 13:50
Hỏi về ImageIcon trong javaswing
int x = label.getSize().width;
int y = label.getSize().height;
int ix =image.getWidth();
int iy = image.getHeight();
int dx =0;
int dy =0;
if(x /y >ix /iy) {
dy = y;
dx = dy*ix /iy;
}else {
dx = x;
dy = dx*iy /ix;
}
ImageIcon icon = new ImageIcon(image.getScaledInstance(dx, dy, image.SCALE_SMOOTH));
cho em hỏi là được biết ý nghĩa của đoạn if else đó là để đặt tỷ lệ truyền ảnh vào đúng ko bị làm mất đi tỷ lệ của ảnh gốc. ai hiểu vì sao được như v giải thích em với ạ
FULL CODE:https://paste.ubuntu.com/26227642/
cám ơn a/c
Bài liên quan
Bạn có thể chuyển chữ x và y thành width và height để dễ hiểu hơn
Có thể hiểu đơn giản như sau:
=> Ta phải tìm một chiều(a) dài nhất của ảnh, sau đó scale chiều đó bằng với độ dài tương ứng của label(la), chiều còn lại(b) thì sẽ thực hiện scale theo chiều còn lại của label (lb) bằng phép toán b=a*lb/la
hehe e hiểu được sơ sơ r . cám ơn a