将 Java 中的标签设置为图像格式问题

Posted

技术标签:

【中文标题】将 Java 中的标签设置为图像格式问题【英文标题】:Set Label in Java to Image-Format Issue 【发布时间】:2012-10-19 20:49:59 【问题描述】:

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

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

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

谢谢

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

【问题讨论】:

你能展示使用你用来放置图像和设置标签的代码吗? 【参考方案1】:

使用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);
    

参考:

Display BMP in JLabel

【讨论】:

非常感谢!我在这里看到了关于另一个问题的类似答案,但肯定有所不同,因为它在那里对我不起作用。这有效:D @MadProgrammer +1。这让我的答案看起来更加巧妙:) 哈哈很棒的照片!找到一个南非人真是太棒了:P 你有没有机会去斗智斗勇? @Josh +1 谢谢。不,我没有,我在大学校园帕克敦:)。继续编码人 伟大的编辑。 :) 希望我可以添加“和 +1”,但我之前已经这样做了。

以上是关于将 Java 中的标签设置为图像格式问题的主要内容,如果未能解决你的问题,请参考以下文章

将过滤器设置为 OpenFileDialog 以允许典型的图像格式?

HTMLHTML 标签 ③ ( 文本格式化标签 | 加粗 | 斜体 | 下划线 | 删除线 | 标签属性 | 图像标签 | 图像标签属性 )

将PowerPoint中的内部图像转换为一种格式

关于图像分割的标签文件格式

将opencv图像格式转换为PIL图像格式?

将 UTF-16 图像加载到内存中