Сохранение растрового изображения в MemoryStream
Должен ли я выделить память или просто объект потока памяти:
Это нормально?
MemoryStream memoryStream = new MemoryStream();
bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
Если мне нужно определить размер MemoryStream, как я могу получить его из Bitmap?
Ответы
Ответ 1
.NET - это управляемая среда: в частности, распределение памяти обычно управляется от вашего имени средой выполнения .NET. Обычно вам не нужно выделять память самостоятельно.
Иногда, однако, вам нужно сообщить время выполнения, когда вы закончили с памятью, используя Close()
или Dispose()
. Оператор using
может использоваться для обертывания ресурса, такого как MemoryStream
, чтобы сообщить исполняемой среде, что память может быть исправлена.
Ответ 2
Вам не нужно выделять память.
После этого вы можете получить размер memoryStream.Length
.
После того, как вы сделали то, что вам нужно, со своим memoryStream
, обязательно удалите его (или оберните его все в инструкции using
).