gpt4 book ai didi

Java从jar中获取打包文件

转载 作者:太空宇宙 更新时间:2023-11-04 15:05:54 25 4
gpt4 key购买 nike

我已经用图像和其他文件打包了 JAR,但对于下面的代码,我想知道如何访问打包的图像。

float[] matrix = {
0.111f, 0.111f, 0.111f,
0.111f, 0.111f, 0.111f,
0.111f, 0.111f, 0.111f,
};

BufferedImageOp op = new ConvolveOp( new Kernel(3, 3, matrix) );
blurredImage = op.filter(sourceImage, destImage);

如果我想要访问图像进行模糊处理,但它包含在我的 JAR 中,我该如何使用它?

编辑:

    try {
BufferedImage spritesheet = ImageIO.read(Content.class.getResourceAsStream("/Sprites/Enemies/enemy.gif"));

float[] matrix = { 0.111f, 0.111f, 0.111f,
0.111f, 0.111f, 0.111f,
0.111f, 0.111f, 0.111f, };

BufferedImageOp op = new ConvolveOp( new Kernel(3, 3, matrix) );
blurredImage = op.filter(spritesheet, spritesheet);
this.setBackground(blurredImage);
}catch(Exception e){e.printStackTrace();}

最佳答案

我知道你的痛苦。从 JAR 加载图像本来不应该令人烦恼,但事实却如此。对于我最近的一个项目,我最终得到了

BufferedImage spritesheet = ImageIO.read(Content.class.getResourceAsStream("/Images/image_to_blur.gif"));

其中 Content 是封闭类。使用 Eclipse,您可以创建一个资源文件夹并将所有资源放入其中。

另一种选择:

getClass().getClassLoader().getResourceAsStream("resources/"+location);

另一种选择:

Toolkit tk = Toolkit.getDefaultToolkit();
URL url = getClass().getResource("asset.png");
Image img = tk.createImage(url);
tk.prepareImage(img, -1, -1, null);

编辑:

好吧,要执行“从我的 Jar 加载背景图像,然后对其进行模糊处理,然后将其设置为我的背景”,您需要执行几个步骤。

  1. 设置一个 JFrame 和一个 JPanel 以及一个 JLabel 来保存您的图像。
  2. 从 JAR 加载图像
  3. 模糊图像(这取决于您想要的模糊类型,但我会假设高斯)
  4. JLabel 设置为该图像。

    public class wowthisisaclass{

    JFrame frame;
    JPanel panel;
    JLabel label;

    float[] matrix = {
    0.111f, 0.111f, 0.111f,
    0.111f, 0.111f, 0.111f,
    0.111f, 0.111f, 0.111f,
    };

    public wowthisisaclass(){ //Step 1
    JFrame window = new JFrame("Title");
    panel = new JPanel();
    panel.setPreferredSize(new Dimension(500,500));

    label = new JLabel((Icon) new ImageIcon(blur(getImage("/path.png"), matrix)));


    //initpanel
    panel.add(label);

    //init frame
    window.add(panel);
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setResizable(false);
    window.pack();
    window.setLocationRelativeTo(null);
    window.setVisible(true);
    }

    public BufferedImage getImage(String path){ //Step 2
    try {
    return ImageIO.read(wowthisisaclass.class.getResourceAsStream(path));
    } catch (IOException e) {
    e.printStackTrace();
    }
    return null;
    }
    public BufferedImage blur(BufferedImage src, float[] matrix){ //Step 3

    ConvolveOp cop = new ConvolveOp( new Kernel( 3, 3, matrix), ConvolveOp.EDGE_NO_OP, null);

    BufferedImage blurredImage = new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_3BYTE_BGR);
    cop.filter( src, blurredImage);
    return blurredImage;
    }
    }

如果您需要任何解释,尽管询问。 :)

关于Java从jar中获取打包文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22001172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com