Tôi đang cố định lại kích thước hình ảnh bằng cách giữ tỷ lệ cỡ ảnh. Nó chỉ đủ lớn để lấp đầy màn hình mà không có khoảng trống và nếu cần thiết, một số hình ảnh sẽ bị tắt.Tính toán kích thước hình ảnh bằng cách giữ tỷ lệ cỡ ảnh với các độ phân giải màn hình khác nhau
Hình ảnh dưới đây cho thấy kích thước hình ảnh màu vàng dựa trên kích thước màn hình màu đen.
Heres Mã mà tôi đang thực sự sử dụng, là có cách nào tốt hơn để làm điều này?
if(bwidth > bheight) {
if(bwidth > swidth && bheight > sheight) {
new_height = sheight;
new_width = (int) ((double) (bwidth/100)*(sheight/((double) (bheight)/100)));
} else if(bwidth > swidth && bheight < sheight) {
new_height = sheight;
new_width = (int) ((double) (bwidth/100)*(sheight/((double) (bheight)/100)));
} else if(bwidth < swidth && bheight < sheight) {
new_height = sheight;
new_width = (int) ((double) (bwidth/100)*(sheight/((double) (bheight)/100)));
} else if(bwidth < swidth && bheight > sheight) {
new_height = sheight;
new_width = (int) ((double) (bwidth/100)*(sheight/((double) (bheight)/100)));
} else if(bwidth >= swidth && bheight >= sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
}
} else if(bwidth < bheight) {
if(bwidth > swidth && bheight > sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
} else if(bwidth < swidth && bheight > sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
} else if(bwidth < swidth && bheight < sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
} else if(bwidth < swidth && bheight < sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
} else if(bwidth >= swidth && bheight >= sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
}
}
- swidth = màn hình rộng
- sheight = màn hình chiều cao
- bwidth = hình ảnh rộng
- bheight = chiều cao hình ảnh
làm bạn muốn cắt khu vực vô hình hoặc thay đổi tỷ lệ – mKorbel
tôi không biết nếu cắt là cần thiết, vì nó sẽ không hiển thị, nó chỉ nên phù hợp với những màn hình, luôn luôn –
bạn có khá nhiều mã dự phòng ở đó - làm thế nào về việc tính lại nó thành các yếu tố cần thiết để đọc dễ dàng hơn? – GreyBeardedGeek