Java全屏图像调整大小?

用户名

您好,我是Java的新手。我正在玩游戏。游戏开始时,会出现加载屏幕,并逐渐消失。我的问题很简单。有没有一种方法可以更改图像大小以适合计算机屏幕的大小。我希望它适合所有类型的屏幕尺寸,并应是原始图像的更大比例。到目前为止,这是我的主要课程(还有其他课程,例如玩家,头衔和比赛,但它们与问题无关:

package Main;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferStrategy;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class Comp extends Canvas implements Runnable, KeyListener {

    private static final long serialVersionUID = 1L;    
    public boolean run = true;
    public Image screen, img;    
    public static double dir = 5;
    public static int pixelSize = 1;    
    public static Dimension size = new Dimension(680, 500);
    public static Dimension pixel = new Dimension(size.width / pixelSize,
            size.height / pixelSize);    
    public static int mx;    
    public static manager m;
    public static int my;
    public static int fps;    
    public static boolean mr;    
    public static boolean ml;

    JFrame frame = new JFrame();    
    public Thread t;    
    public boolean splashscreen = true;
    public int time = 0;
    public int timer = 140;    
    public int btime = 0;
    public int btimer = 1;     
    private int FPS = 5;
    private long targetTime = 1000 / FPS;

    public Comp() {
        setPreferredSize(size);
        setFocusable(true);
        addKeyListener(this);    
        addKeyListener(new listen());
        addMouseListener(new listen());
        addMouseMotionListener(new listen());
        addMouseWheelListener(new listen());    
        m = new manager();
        requestFocus();    
        // h = new InputHandler(this);
    }

    public void start() {
        run = true;    
        frame.add(this);    
        frame.pack();
        frame.requestFocus();    
        frame.setTitle("In The Maze");
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);    
        frame.setIconImage(new ImageIcon("res/traps/beartrap1.png").getImage());    
        t = new Thread(this);
        t.start();
    }

    public void stop() {
        run = false;    
    }

    public static void main(String[] args) {
        Comp c = new Comp();    
        c.start();
    }

    public void render() {
        BufferStrategy bs = this.getBufferStrategy();
        if (bs == null) {
            createBufferStrategy(2);
            return;
        }
        Graphics g = bs.getDrawGraphics();
        g.setColor(Color.white);
        g.fillRect(0, 0, 1000, 1000);    
        if (!splashscreen) {    
            m.render(g);
        }           
        if(splashscreen){
            ImageIcon i62 = new ImageIcon("res/splashscreen.png");
            img = i62.getImage();
            g.drawImage(img,(int)0 ,(int)0,Comp.size.width+10,Comp.size.height + 10,null);            
            time++;
        }    
        g.dispose();    
        bs.show();
    }

    public void tick() {
        if(time >= timer){
            time = 0;
            splashscreen = false;
        }

        if(!splashscreen){
            m.tick();
        }
        Keys.update();
        Esentials.tick();    
    }

    public void run() {
        screen = createVolatileImage(pixel.width, pixel.height);                
        long start;
        long elapsed;
        long wait;          
        long currentTime = System.currentTimeMillis();          
        while (run) {
            start = System.nanoTime();
            fps++;
            if(System.currentTimeMillis()  - currentTime >= 1000){
            //  System.out.println("fps:" + fps);    
                currentTime = System.currentTimeMillis();
                fps = 0;
            }
            tick();
            render();
            elapsed = System.nanoTime() -start;    
            wait = targetTime = elapsed / 1000000;              
            try {
                Thread.sleep(wait);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    public void keyTyped(KeyEvent i) {
    }

    public void keyPressed(KeyEvent i) {
        Keys.keySet(i.getKeyCode(), true);    
    }

    public void keyReleased(KeyEvent i) {
        Keys.keySet(i.getKeyCode(), false);
    }    
}
ServerSideCat

尝试使用Toolkit.getScreenSize()

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
double width = screenSize.getWidth();
double height = screenSize.getHeight();

要调整图像的大小,您可以使用简单的imgscalr

BufferedImage scaledImage = Scalr.resize(myImage, 100);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将图像调整为全屏或文件大小

来自分类Dev

调整Java图像大小

来自分类Dev

Bootstrap 3图像自动调整全屏大小和滚动效果

来自分类Dev

Java从URL调整图像大小?

来自分类Dev

Java GUI调整图像大小

来自分类Dev

使用Java调整图像大小

来自分类Dev

JFrame大小,调整大小,全屏

来自分类Dev

以因子 2 调整 Java 中的图像大小

来自分类Dev

如何获得不调整大小的全屏背景图像(带有中心裁剪)

来自分类Dev

Bootstrap4-全屏仪表板,其图像可以调整大小并填充到div中?

来自分类Dev

在iOS6中,页面尺寸较小的PDF图像不会自动调整为全屏大小

来自分类Dev

Codeigniter图像调整大小?

来自分类Dev

停止调整图像大小

来自分类Dev

调整Vaadin图像大小

来自分类Dev

调整画布图像的大小

来自分类Dev

快速调整图像大小

来自分类Dev

Codeigniter图像调整大小?

来自分类Dev

调整图像大小

来自分类Dev

图像调整大小的错误

来自分类Dev

调整画布图像的大小

来自分类Dev

调整XXHDPI的图像大小

来自分类Dev

调整图像大小的问题

来自分类Dev

Python 调整图像大小

来自分类Dev

全屏元素调整为视口大小

来自分类Dev

调整tkinter窗口的大小以全屏显示

来自分类Dev

调整Java Swing大小后图像变成黑色

来自分类Dev

Java,SWT,调整大小时图像透明度丢失

来自分类Dev

全屏滑块的图像在窗口调整大小时不会得到100vh和100vw

来自分类Dev

调整窗口高度时调整图像的大小