File.WriteAllBytes和FileStream.Write/WriteBytes之间有什么区别?我有一个位图对象,我想在磁盘上创建一个新的bmp/jpg/png文件。我记得在某个地方读到过WriteAllBytes在底层使用FileStream.Write?
WriteAllBytes
是一个方便方法,它封装了底层的 Stream
操作(如创建文件、写入流、关闭流等)。如果符合您的需求,请使用它。如果需要对底层操作进行更多控制,请回退到使用 Stream
或类似的方法。
这一切都关乎使用正确的抽象方法来完成任务。
你的做法不对。保存位图对象需要使用Image.Save()方法,该方法知道如何使用图像编码器将位图转换为字节,以便其他程序(或您自己)可以重新加载。有几个图像编码器可供选择,您可以使用允许选择ImageFormat的Save()重载来选择所需的编码器。BMP格式是本机Windows格式,未经压缩。PNG格式很好,是一种无损压缩格式。JPEG格式是一种有损压缩格式,适用于照片。文件大小按顺序从大到小。