gpt4 book ai didi

android - 以 block android的形式将位图写入文件

转载 作者:搜寻专家 更新时间:2023-11-01 07:37:37 25 4
gpt4 key购买 nike

这个问题与我的previous question有关但你不需要阅读它来理解它。

现在我试图将位图转换成更小的部分,然后保存这些更小的部分。

我遇到的问题是,只有第一部分保存在比完整图像大得多的文件中。下面是我正在使用的代码:

for (int i = 0; i < Image.getHeight(); i++)
{
fout = new FileOutputStream(file, true);
Bitmap temp = Bitmap.createBitmap(Image, 0, i,Image.getWidth(), 1);
temp.compress(Bitmap.CompressFormat.PNG, 100, fout);
fout.flush();
fout.close();
}

代码很简单,但我不明白为什么只有第一行写在文件中。

更新::梅林和迪帕克是对的。我现在尝试使用不同的名称,并且所有部分都已成功写入不同的文件。现在您知道了问题所在,我应该从第二个 block 中删除 header 并从第一个 block 中删除 eof 还是什么?

最佳答案

我要克制住问你到底为什么要这样做的冲动,因为它非常低效,所以让我们看看。

因此,您一次写入一行像素,但您将附加标志设置为 true 并将它们重复写入同一个文件,这是正确的。

您错过的事实是,当您编写位图时,您正在编写的是自包含的。因此,读取第一行的程序会期望它是整个位图。

这相当于在文本文件中有一个 EOF 标记。所有的行都在写,但是当阅读它时,读者在第一个 EOF 后就放弃了

您需要研究 the structure of a PNG file更全面地了解正在发生的事情

关于android - 以 block android的形式将位图写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8591739/

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