Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从BuffereImage到文件:返回类型问题_Java_Swing_File_Bufferedimage - Fatal编程技术网

Java 从BuffereImage到文件:返回类型问题

Java 从BuffereImage到文件:返回类型问题,java,swing,file,bufferedimage,Java,Swing,File,Bufferedimage,很抱歉,如果这让任何人感到厌烦,但我不确定我在搜索答案时仔细阅读的其他问题。我的问题是我正在创建一个类,它只是将高斯噪声添加到传入的文件类型中。添加噪波后,我希望将结果返回到我创建的MainScreen类。问题是,MainClass在其JPanel中使用文件 我的问题是如何将BuffereImage类型转换为Mainscreen类的文件类型返回,而不会导致与Swing的Jpanel一起使用时出错 这是代码,如果你想看清楚的话。(如果这是一个错误的提问方式,我同意关闭这个网站;我对所有这一切都是新

很抱歉,如果这让任何人感到厌烦,但我不确定我在搜索答案时仔细阅读的其他问题。我的问题是我正在创建一个类,它只是将高斯噪声添加到传入的文件类型中。添加噪波后,我希望将结果返回到我创建的MainScreen类。问题是,MainClass在其JPanel中使用文件

我的问题是如何将BuffereImage类型转换为Mainscreen类的文件类型返回,而不会导致与Swing的Jpanel一起使用时出错

这是代码,如果你想看清楚的话。(如果这是一个错误的提问方式,我同意关闭这个网站;我对所有这一切都是新手,对此我会保持沉默)

import java.io.*;
导入java.util.*;
导入java.lang.Math;
导入java.awt.Image;
导入java.awt.image.buffereImage;
导入javax.imageio.imageio;
公共类噪声发生器{
图像;
缓冲图像缓冲;
随机r;
整数宽度;
内部高度;
整数指数;
//我在问题中提到的代码部分
//addNoiseToImage接收一个文件。
公共缓冲区Image addNoiseToImage(文件imageToBeChanged,int标准偏差){
试一试{
image=ImageIO.read(imageToBeChanged);
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
缓冲=(缓冲图像)图像;
宽度=image.getWidth(null);
高度=image.getHeight(null);
指数=0;
双噪声发生器;
int noiseValues[]=新的int[100];
int延迟=0;
整数检查=0;
做{
noiseHolder=r.nextGaussian()*标准偏差;
check=(int)Math.round(noiseHolder);
如果(检查>0){
noiseValues[delay]=(int)noiseHolder;
延迟++;
}

}而(延迟图像I/O类在以下示例中提供了一种以多种图像格式保存图像的简单方法:

static boolean ImageIO.write(RenderedImage im, 
                             String formatName,
                             File output)  throws IOException
注意:BuffereImage类实现RenderImage接口。

formatName参数选择用于保存BuffereImage的图像格式

try {
    // retrieve image
    BufferedImage bi = getMyImage();
    File outputfile = new File("saved.png");
    ImageIO.write(bi, "png", outputfile);
} catch (IOException e) {
    ...
}

有关更多信息,请参阅示例。

您仅以10秒的优势获胜。
try {
    // retrieve image
    BufferedImage bi = getMyImage();
    File outputfile = new File("saved.png");
    ImageIO.write(bi, "png", outputfile);
} catch (IOException e) {
    ...
}