Java, как изменить размер изображения до размера экрана - PullRequest
0 голосов
/ 14 сентября 2018
java.awt.image.BufferedImage img = ImageIO.read(new FileInputStream("D:\\java.jpg"));


    int scaledWidth, scaledHeight;


    int originalWidth = img.getWidth();
    int originalHeight = img.getHeight();

    float imageRatio = (int) (originalWidth / originalHeight);

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    float screenRatio = (float) (screenSize.width / screenSize.height);


    if(imageRatio <= screenRatio) {
         // The scaled size is based on the height
         scaledHeight = screenSize.height;
         scaledWidth = (int) (scaledHeight * imageRatio);
        } else {
         // The scaled size is based on the width
         scaledWidth = screenSize.width;
         scaledHeight = (int) (scaledWidth / imageRatio);
        }




    ImageIcon myImage = new ImageIcon(img.getScaledInstance(scaledWidth, scaledHeight, Image.SCALE_FAST));
    //ImageIO.write(img, "jpg", new File("C:\\Users\\Posi\\Desktop\\screenshot2.jpg"));`

* ребята, я хочу изменить размер изображения, чтобы соответствовать любому разрешению экрана, используя Java кто-нибудь знает, как?Я думаю, что я должен сначала получить разрешение экрана от устройства, а затем установить разрешение изображения *

1 Ответ

0 голосов
/ 14 сентября 2018

Пара способов:

Используйте JPanel для рисования изображения. Переопределите метод paintomponent(...), и основной код будет:

super.paintComponent(g);
g.drawImage(0, 0, getWidth(), getHeight(), this);

Затем вы просто добавляете панель к рамке:

frame.setContentPane( the custom panel );

Теперь изображение будет динамически изменяться по мере изменения размера кадра.

Другой способ - использовать StretchIcon . Этот класс позволит вам растянуть иконку, чтобы заполнить доступное пространство, или растянуть иконку, но сохранить первоначальные пропорции иконы.

StretchIcon icon = new StretchIcon(..);
JLabel label = new JLabel( icon );
frame.add( label );
...