gpt4 book ai didi

java - 如何使用文件作为参数创建 BufferedImage 的新类

转载 作者:行者123 更新时间:2023-12-01 17:07:56 24 4
gpt4 key购买 nike

我想创建一个新类,因为我想创建一些新方法,它扩展 BufferedImage 并接受一个文件、一张 bmp 图片作为参数。就像这里发生的事情一样:

BufferedImage image = ImageIO.read(new File(dir + "coffeecup.png"));

查看文档我发现 BufferedImage 类有两个构造函数:

  1. 公共(public) BufferedImage(ColorModel cm,WritableRaster 光栅, boolean isRasterPremultiplied, 哈希表属性)
  2. 公共(public) BufferedImage(int 宽度, 整数高度, int imageType)

浏览所有参数的文档时,我没有注意到哪个参数引用了文件(如果有)。那么我需要如何创建一个新的 BufferedImage 类,但将文件作为参数之一?

最佳答案

不要尝试复杂的事情。除非您试图覆盖某些实现(我建议不要这样做),否则请遵循继承的基本规则组合。只需创建一个包装类,而不是尝试不必要地扩展 BufferedImage。你试图将担忧结合起来,这是一个可怕的想法。 BufferedImage 不能用文件构造,因为这不是 Image 的问题。正如关于 BufferedImage 所说的

It manages the image in memory and provides methods for storing, interpreting, and obtaining pixel data.

这就是它应该关心的一切。因此,创建一个包装类,您可以添加方法来执行任何操作

public class BufferedImageWrapper {
private BufferedImage bufferredImage;

public BufferedImageWrapper(File file) {
try {
bufferedImage = ImageIO.read(file);
} catch (IOException ex) {
ex.printStackTrace();
}
}

// your methods here
}

关于java - 如何使用文件作为参数创建 BufferedImage 的新类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24529600/

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