Я сохраняю большое количество памяти var = new MemoryStream (); растровое изображение . Сохранить ( память , ImageFormat . Png ); s (скриншоты) в память. Ничего особенного в коде, это тривиально:
Save()
Поскольку мой компьютер становится немного медленным, я запустил сеанс анализа производительности в Visual Studio, и выяснил, что Save()
вызов занимает 37% «инклюзивных образцов». Другие большие части используются при сохранении на диске, поэтому эти 37% более вероятны на 80%, если не сохранять на диск. (На данный момент я не хочу сохранять на диск. Все данные хранятся в ОЗУ до тех пор, пока не будет нажата горячая клавиша, и я вряд ли буду иметь влияние на скорость на жестком диске.)
По моему Save()
мнению , вызов должен преобразовать более или менее «необработанные» данные растрового изображения в сжатый формат файла PNG.
Интересно, имеет ли кто-нибудь обзор производительности различных форматов изображений относительно времени обработки метода. Я бы хотел выбрать самый быстрый формат, даже если размер файла больше.ImageFormat.MemoryBmp
Я пытался:
ArgumentNullException
но это бросает :GIF : ~5.5% CPU load TIFF: ~4.5% CPU load PNG : ~4.0% CPU load JPG : ~2.0% CPU load (note that this is lossy) BMP : ~1.0% CPU load
Значение не может быть нулевым. Имя параметра: encoder
Я нашел связанный вопрос, который описывает, что некоторые форматы изображений доступны только для чтения, что немного сокращает список.
c#,performance,bitmap,image-compression,