public byte[] PictureByteArray
{
get
{
//get a TypeConverter object for converting Bitmap to bytes
TypeConverter converter = TypeDescriptor.GetConverter(typeof(Bitmap));
byte[] byteArr = (byte[])converter.ConvertTo(source, typeof(byte[]));
return byteArr;
}
set
{
source = new Bitmap(new MemoryStream(value));
}
}
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
s = enc.GetString(bytes);
0
A
ответ
1
Я обычно использую эти два способа для преобразования изображения в массив байтов, и обратно, например, при переносе изображения на веб-службы, и извлечения его обратно:
public static byte[] ImageToByteArray(System.Drawing.Image imageIn) {
MemoryStream ms = new MemoryStream();
Bitmap image = new Bitmap(imageIn);
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
return ms.ToArray();
}
public static Image ByteArrayToImage(byte[] byteArray) {
MemoryStream ms = new MemoryStream(byteArray);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
+0
Кстати, я думаю, что вы просачиваете растровое изображение в ImageToByteArray. После сохранения временного растрового изображения вы должны сохранить его. – N8allan 2015-06-02 18:47:04
Я не» t думаю, что вы можете использовать свойство здесь, так как вы хотите, чтобы свойство принималось в массиве байтов и возвращало растровое изображение. Свойство должно получить и установить один и тот же тип данных. Для этого вам нужно сделать два метода. Один для массива image-> byte и один для байтового массива-> изображение. – 2010-11-30 08:49:49