当前位置: 首页 > 面试题库 >

将javafx.scene.image.Image写入文件?

顾俊楚
2023-03-14
问题内容

我将如何将javafx.scene.image.Image图像写入文件。我知道您可以在BufferedImages上使用ImageIO,但是有什么方法可以使用javafx图像吗?


问题答案:

差不多3年后,我现在有知识去做并回答这个问题。是的,原始答案也是有效的,但它涉及到先将图像转换为BufferedImage,我理想上想完全避免摆动。虽然这确实会输出图像的原始RGBA版本,足以满足我的需要。实际上,由于我正在编写软件来打开结果,所以实际上我只能使用原始BGRA,但是由于gimp无法打开,我认为我会将其转换为RGBA。

Image img = new Image("file:test.png");
int width = (int) img.getWidth();
int height = (int) img.getHeight();
PixelReader reader = img.getPixelReader();
byte[] buffer = new byte[width * height * 4];
WritablePixelFormat<ByteBuffer> format = PixelFormat.getByteBgraInstance();
reader.getPixels(0, 0, width, height, format, buffer, 0, width * 4);
try {
    BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("test.data"));
    for(int count = 0; count < buffer.length; count += 4) {
        out.write(buffer[count + 2]);
        out.write(buffer[count + 1]);
        out.write(buffer[count]);
        out.write(buffer[count + 3]);
    }
    out.flush();
    out.close();
} catch(IOException e) {
    e.printStackTrace();
}


 类似资料:
  • 问题内容: 我正在尝试从Http帖子回复文件写入 sdcard 上的文件。一切正常,直到检索到字节数据数组为止。 我尝试在清单中设置权限,并尝试了许多在网上找到的教程的不同组合。 我所能找到的只是使用活动的方法,但是我的应用程序如何通过线程来写入文件。具体来说,当必须写入文件时,会从另一个线程中调用一个线程,因此即使我尝试了活动对象,也无法使用它。 该应用程序已经走了很长一段路,我无法更改当前编写

  • 我在做一个CSC 110项目。尽管我们还没有学过字典,我还是试着用字典来完成我们的作业。 我有一份国家和他们赢得多少奖牌的档案,用新的行字符隔开。例如: 虽然这是有效的,但它是肮脏和过于复杂。我正想出一个新方法来做这件事。

  • 问题内容: 我正在尝试将不同语言的字符串写入rtf文件。我尝试了一些不同的东西。我在这里以日语为例,但是我尝试过的其他语言也是如此。 我还尝试过: 或更具体: 输出流还具有writeUTF方法: 您可以使用write方法在输出流中直接使用byte []。以上所有内容使我发现西欧语言以外的所有字符都乱码。为了查看它是否有效,我尝试在notepad ++中打开结果文档并设置适当的编码。我也使用过Ope

  • 问题内容: 我已经在该站点附近搜索了答案,但找不到任何答案。 我有一个表格,我想将输入内容写入txt文件。为了简单起见,我只写了一个简单的表单和脚本,但是它一直让我空白。这就是我得到的 这是我的PHP文件 问题答案: 您的表格应如下所示: 和PHP 我写信是因为这样我才知道确切的位置。使用写入当前工作目录中的文件,在您的示例中我一无所知。 为您打开,写入和关闭文件。不要惹它。 进一步阅读: fil

  • 问题内容: 将结构转储到提供的csv文件中的惯用golang方法是什么?我在一个func里面,我的结构作为接口{}传递: 为什么要使用界面{}?-从JSON读取数据,可能会返回一些不同的结构,因此尝试编写足够通用的函数。 我的类型的一个例子: 问题答案: 如果您使用具体类型,将会容易得多。您可能想要使用该软件包,这是一个相关示例;https://golang.org/pkg/encoding/cs

  • 问题内容: 考虑以下功能 在下一行中每次添加要写入的内容? 例如,我想要给定字符串的每个单词在单独的lline中,例如: 写道: 问题答案: 要将文本(而不是原始字节)写入文件,应考虑使用FileWriter。您还应该将其包装在BufferedWriter中,这将为您提供newLine方法。 要将每个单词写在新行上,请使用String.split将您的文本分成单词数组。 因此,这是对您的要求的简单