上述代码用C#如何保存为jpg格式?
时间: 2024-10-17 12:11:10 浏览: 46
要将上述代码中获取到的图像数据(`byte[] imageByte`)保存为`.jpg`格式,可以使用C#的`System.Drawing.Imaging`命名空间中的`Bitmap`类和`Encoder`枚举。以下是保存步骤:
```csharp
using System.Drawing;
using System.Drawing.Imaging;
// 假设imageByte已经包含了图像数据
byte[] imageByte = ...;
// 解析字节流为 Bitmap 对象
MemoryStream ms = new MemoryStream(imageByte);
Bitmap bitmap = new Bitmap(ms);
// 创建一个新的内存流来保存JPEG格式的图片
MemoryStream outputStream = new MemoryStream();
// 设置JPEG质量(0-100,默认95)
encoderParams.Param[ImageCompressionQuality.Name] = (object)(float)95;
// 获取JPEG编码器
Encoder encoder = Encoder.SaveFormat;
// 编码并保存到outputStream
bitmap.Save(outputStream, encoderParams);
// 输出流现在包含 JPEG 数据
outputStream.Position = 0; // 重置流的位置
// 写入文件
File.WriteAllBytes("image.jpg", outputStream.ToArray());
// 关闭资源
bitmap.Dispose();
ms.Close();
outputStream.Close();
```
这段代码首先创建了一个`Bitmap`对象来处理图像数据,然后使用`Encoder`枚举选择JPEG格式,并设置质量和压缩级别。接着,将`Bitmap`对象保存到新的`MemoryStream`中,并将其内容写入磁盘上名为"image.jpg"的文件中。
注意:确保在保存前处理异常,并根据实际需要调整编码质量和输出路径。
阅读全文