我想创建一个新类,因为我想创建一些新方法,它扩展 BufferedImage 并接受一个文件、一张 bmp 图片作为参数。 就像这里发生的事情一样:
BufferedImage image = ImageIO.read(new File(dir + "coffeecup.png"));
查看文档我发现 BufferedImage 类有两个构造函数:
- 公共(public) BufferedImage(ColorModel cm,WritableRaster 光栅, boolean isRasterPremultiplied, 哈希表属性)
- 公共(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/