图片格式转换

1.图片转换为字节数组
 1   /// <summary>
 2         /// 将图片以二进制流
 3         /// </summary>
 4         /// <param name="path"></param>
 5         /// <returns></returns>
 6         public static byte[] SaveImage(string path)
 7         {
 8             FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存
 9             BinaryReader br = new BinaryReader(fs);
10             byte[] imgBytesIn = br.ReadBytes((int)fs.Length); //将流读入到字节数组中
11             return imgBytesIn;
12         }

2.转成想要的格式

 1  public static bool Save(byte[] bytes)
 2         {
 3             try
 4             {
 5                 string NewImageName = DateTime.Now.ToString("yyyyMMdd");//ImageName(CenterId);//获得图片的名字
 6                 string ImagePath = @"E:/imges/" + NewImageName.ToString() + ".png";
 7 
 8                 MemoryStream ms = new MemoryStream(bytes);
 9 
10                 var bmp = new Bitmap(ms);
11                 bmp.Save(ImagePath, ImageFormat.Bmp);
12                 //ms.Close();
13                 return true;
14             }
15             catch (Exception ex)
16             {
17 
18                 throw ex;
19                 //return false;
20             }
21 
22         }

3.调用

 1 static void Main(string[] args)
 2         {
 3             byte[] bytes = SaveImage(@"E:\imges\chn1.jpg");
 4             bool b = Save(bytes);
 5             //Bitmap bitmap = ChangeImgToJpg(bytes);
 6             //bool b = SaveJpg(bitmap);
 7             if (b)
 8             {
 9                 Console.WriteLine("Yes");
10             }
11             else
12             {
13                 Console.WriteLine("No");
14             }
15             Console.ReadKey();
16         }

但是,我在调用Save方法的时候 总会报个错“参数类型错误” ,

后开百度发现,那些图片 是直接从百度下载后,直接改的后缀名,

所以他不是真正的jpg或者png什么的,所以就会发生这个错误

posted on 2022-06-12 22:21  泰坦尼克号上的活龙虾  阅读(66)  评论(0)    收藏  举报

导航