1

我正在尝试将 java 程序中的标签设置为图像。但是,它似乎不适用于 .bmp 图像

我正在寻找一个转换器,它允许我将图像从 .bmp 转换为具有相同文件名的 .jpg。这个转换器需要由java程序控制,其中有需要转换的图像的名称和位置。

任何帮助都将不胜感激,因为我已经为此花费了数小时:P

谢谢

*编辑:该程序需要能够与该程序一起打包,以便它可以在多台计算机上运行(即不能是我安装到我的计算机上的东西)。我希望找到一个 .exe 接收图像文件名作为参数并将其转换为 .jpg

4

1 回答 1

5

像这样使用ImageIO#read(java 1.4 及更高版本):

ImageIcon icon = new ImageIcon(ImageIO.read(filename));

JLabel label = new JLabel(icon);

对于 Java 1.4 以下的任何内容,请使用image4j

更新:

这是我做的一个例子:

在此处输入图像描述

import java.awt.Dimension;
import java.awt.Image;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class JLabelBmpTest {

    public JLabelBmpTest() throws  MalformedURLException, IOException {
        initComponents();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    new JLabelBmpTest();
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        });
    }

    private void initComponents() throws MalformedURLException, IOException {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Image background = ImageIO.read(new URL("http://www.3drealms.com/zerohour/images/zhbackground.bmp"));
        final ImageIcon ii = new ImageIcon(background);

        frame.add(new JLabel(ii) {
            @Override
            public Dimension getPreferredSize() {
                return new Dimension(ii.getIconWidth(), ii.getIconHeight());

            }
        });

        frame.setResizable(false);
        frame.pack();
        frame.setVisible(true);
    }
}

参考:

于 2012-10-19T20:55:30.457 回答