如何用c#编写PNG文件
本文关键字:PNG 文件 编写 何用 | 更新日期: 2023-09-27 18:24:53
我通过转换这个文件来获得png文件的内容,我想把它写在我的D驱动器中。这是我的代码:
s = File.ReadAllText(openFileDialog1.FileName.ToString());
File.WriteAllText(@"D:'result.png", s);
但结果与所选文件(.png)不一样,当我写它时,它会被损坏。我还使用了ASCII编码和UTF,但没有任何变化。。。
知道吗?感谢
PNG是二进制数据,而不是文本。您需要读取所有字节并写入这些字节。
看起来你只是在寻找File.Copy
。
要读取所有字节,请使用命名方便的方法File.ReadAllBytes()
。
//Read All Bytes
byte[] fileBytes = File.ReadAllBytes(openFileDialog1.FileName.ToString());
//Data that needs to added, converted to bytes, Better off making a function for this
String str = "Data to be added";
byte[] newBytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, newBytes, 0, newBytes.Length);
//Add the two byte arrays, the file bytes, the new data bytes
byte[] fileBytesWithAddedData = new byte[ fileBytes.Length + newBytes.Length ];
System.Buffer.BlockCopy(fileBytes, 0, fileBytesWithAddedData, 0, fileBytes.Length);
System.Buffer.BlockCopy( newBytes, 0, fileBytesWithAddedData, fileBytes.Length, newBytes.Length );
//Write to new file
File.WriteAllBytes(@"D:'result.png", fileBytesWithAddedData);