C# 转换函数 (Stream to Byte[],Byte to Image,Image to Byte[],Image缩放,Byte[] to Bitmap)
2017-10-11 15:33
363 查看
1.Stream转byte[]
public
byte[]
StreamToByteArr(Stream
stream)
[align=left] {[/align]
byte[]
bytes
=
new
byte[stream.Length];
//创建byte数组
stream.Read(bytes,
0,
bytes.Length);
//将Stream读入byte数组
stream.Seek(0,
SeekOrigin.Begin);//
将流指向起始位置
return
bytes;
}
2. byte[]转Image
public
static
Image
GetImageByBytes(byte[]
bytes)
[align=left]{[/align]
Image
photo
=
null;
using
(MemoryStream
ms
=
new
MemoryStream(bytes))
[align=left] {[/align]
ms.Write(bytes,
0,
bytes.Length);
photo
=
Image.FromStream(ms,
true);
[align=left] }[/align]
return
photo;
}
3.Image转Byte[]
public
byte[]
GetByteImage(Image
img)
[align=left]{[/align]
byte[]
bt
=
null;
if
(!img.Equals(null))
[align=left] {[/align]
using
(MemoryStream
mostream
=
new
MemoryStream())
[align=left] {[/align]
Bitmap
bmp
=
new
Bitmap(img);
bmp.Save(mostream,
System.Drawing.Imaging.ImageFormat.Bmp);
bt
=
new
byte[mostream.Length];
mostream.Position
= 0;
mostream.Read(bt,
0,
Convert.ToInt32(bt.Length));
[align=left] }[/align]
[align=left] }[/align]
return
bt;
}
4.Image图片缩放
public
Image
pictureProcess(Image
sourceImage,
int
targetWidth,
int
targetHeight)
[align=left]{[/align]
int
width;//图片最终的宽
int
height;//图片最终的高
try
[align=left] {[/align]
System.Drawing.Imaging.ImageFormat
format
=
sourceImage.RawFormat;
Bitmap
targetPicture
=
new
Bitmap(targetWidth,
targetHeight);
Graphics
graphics
=
Graphics.FromImage(targetPicture);
graphics
.Clear(Color.White);
//计算缩放图片的大小
if
(sourceImage.Width
>
targetWidth
&&
sourceImage.Height
<=
targetHeight)
[align=left] {[/align]
width
=
targetWidth;
height
= (width
*
sourceImage.Height)
/
sourceImage.Width;
[align=left] }[/align]
else
if
(sourceImage.Width
<=
targetWidth
&&
sourceImage.Height
>
targetHeight)
[align=left] {[/align]
height
=
targetHeight;
width
= (height
*
sourceImage.Width)
/
sourceImage.Height;
[align=left] }[/align]
else
if
(sourceImage.Width
<=
targetWidth
&&
sourceImage.Height
<=
targetHeight)
[align=left] {[/align]
width
=
sourceImage.Width;
height
=
sourceImage.Height;
[align=left] }[/align]
else
[align=left] {[/align]
width
=
targetWidth;
height
= (width
*
sourceImage.Height)
/
sourceImage.Width;
if
(height
>
targetHeight)
[align=left] {[/align]
height
=
targetHeight;
width
= (height
*
sourceImage.Width)
/
sourceImage.Height;
[align=left] }[/align]
[align=left] }[/align]
graphics
.DrawImage(sourceImage,
(targetWidth
-
width) / 2, (targetHeight
-
height) / 2,
width,
height);
sourceImage.Dispose();
return
targetPicture;
[align=left] }[/align]
catch
(Exception
ex)
[align=left] {[/align]
[align=left] }[/align]
return
null;
}
5.byte[] 转bitmap
public
static
Bitmap
BytesToBitmap(byte[]
Bytes)
[align=left]{[/align]
MemoryStream
stream
=
null;
try
[align=left] {[/align]
stream
=
new
MemoryStream(Bytes);
return
new
Bitmap((Image)new
Bitmap(stream));
[align=left] }[/align]
catch
(ArgumentNullException
ex)
[align=left] {[/align]
throw
ex;
[align=left] }[/align]
catch
(ArgumentException
ex)
[align=left] {[/align]
throw
ex;
[align=left] }[/align]
finally
[align=left] {[/align]
stream.Close();
[align=left] }[/align]
}
public
byte[]
StreamToByteArr(Stream
stream)
[align=left] {[/align]
byte[]
bytes
=
new
byte[stream.Length];
//创建byte数组
stream.Read(bytes,
0,
bytes.Length);
//将Stream读入byte数组
stream.Seek(0,
SeekOrigin.Begin);//
将流指向起始位置
return
bytes;
}
2. byte[]转Image
public
static
Image
GetImageByBytes(byte[]
bytes)
[align=left]{[/align]
Image
photo
=
null;
using
(MemoryStream
ms
=
new
MemoryStream(bytes))
[align=left] {[/align]
ms.Write(bytes,
0,
bytes.Length);
photo
=
Image.FromStream(ms,
true);
[align=left] }[/align]
return
photo;
}
3.Image转Byte[]
public
byte[]
GetByteImage(Image
img)
[align=left]{[/align]
byte[]
bt
=
null;
if
(!img.Equals(null))
[align=left] {[/align]
using
(MemoryStream
mostream
=
new
MemoryStream())
[align=left] {[/align]
Bitmap
bmp
=
new
Bitmap(img);
bmp.Save(mostream,
System.Drawing.Imaging.ImageFormat.Bmp);
bt
=
new
byte[mostream.Length];
mostream.Position
= 0;
mostream.Read(bt,
0,
Convert.ToInt32(bt.Length));
[align=left] }[/align]
[align=left] }[/align]
return
bt;
}
4.Image图片缩放
public
Image
pictureProcess(Image
sourceImage,
int
targetWidth,
int
targetHeight)
[align=left]{[/align]
int
width;//图片最终的宽
int
height;//图片最终的高
try
[align=left] {[/align]
System.Drawing.Imaging.ImageFormat
format
=
sourceImage.RawFormat;
Bitmap
targetPicture
=
new
Bitmap(targetWidth,
targetHeight);
Graphics
graphics
=
Graphics.FromImage(targetPicture);
graphics
.Clear(Color.White);
//计算缩放图片的大小
if
(sourceImage.Width
>
targetWidth
&&
sourceImage.Height
<=
targetHeight)
[align=left] {[/align]
width
=
targetWidth;
height
= (width
*
sourceImage.Height)
/
sourceImage.Width;
[align=left] }[/align]
else
if
(sourceImage.Width
<=
targetWidth
&&
sourceImage.Height
>
targetHeight)
[align=left] {[/align]
height
=
targetHeight;
width
= (height
*
sourceImage.Width)
/
sourceImage.Height;
[align=left] }[/align]
else
if
(sourceImage.Width
<=
targetWidth
&&
sourceImage.Height
<=
targetHeight)
[align=left] {[/align]
width
=
sourceImage.Width;
height
=
sourceImage.Height;
[align=left] }[/align]
else
[align=left] {[/align]
width
=
targetWidth;
height
= (width
*
sourceImage.Height)
/
sourceImage.Width;
if
(height
>
targetHeight)
[align=left] {[/align]
height
=
targetHeight;
width
= (height
*
sourceImage.Width)
/
sourceImage.Height;
[align=left] }[/align]
[align=left] }[/align]
graphics
.DrawImage(sourceImage,
(targetWidth
-
width) / 2, (targetHeight
-
height) / 2,
width,
height);
sourceImage.Dispose();
return
targetPicture;
[align=left] }[/align]
catch
(Exception
ex)
[align=left] {[/align]
[align=left] }[/align]
return
null;
}
5.byte[] 转bitmap
public
static
Bitmap
BytesToBitmap(byte[]
Bytes)
[align=left]{[/align]
MemoryStream
stream
=
null;
try
[align=left] {[/align]
stream
=
new
MemoryStream(Bytes);
return
new
Bitmap((Image)new
Bitmap(stream));
[align=left] }[/align]
catch
(ArgumentNullException
ex)
[align=left] {[/align]
throw
ex;
[align=left] }[/align]
catch
(ArgumentException
ex)
[align=left] {[/align]
throw
ex;
[align=left] }[/align]
finally
[align=left] {[/align]
stream.Close();
[align=left] }[/align]
}
相关文章推荐
- [C#] Byte[]、Image、Bitmap 之间的相互转换
- Silverlight - 将BitmapImage转化为Stream或byte数组
- WriteableBitmap/BitmapImage/MemoryStream/byte[]相互转换
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- c# Bitmap byte[] Stream 文件相互转换
- c# Bitmap byte[] Stream 文件相互转换
- BufferHelp byte[] Stream string FileStream Image Bitmap
- WriteableBitmap/BitmapImage/MemoryStream/byte[]相互转换
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- c# Bitmap byte[] Stream 文件相互转换
- c# 中Bitmap, byte[] ,Stream 文件相互转换
- C# BitmapImage对象和byte[]之间的互转、BitmapImage和Bitmap互换
- [C#] Byte[]、Image、Bitmap 之间的相互转换
- c# Bitmap byte[] Stream 文件相互转换
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- c# Bitmap byte[] Stream 文件相互转换
- [C#] Byte[]、Image、Bitmap 之间的相互转换
- c# Byte[]、Image、Bitmap 之间的相互转换