Можно использовать утилиту преобразования ImageMagick для этого, видеть некоторые примеры в http://studio.imagemagick.org/pipermail/magick-users/2002-May/002636.html :
Convert taxes.pdf taxes.jpg
преобразует файл двух страниц PDF в [2] jpeg файлы: налоги jpg.0, налоги jpg.1
я могу также преобразовать эти JPEGS в миниатюру следующим образом:
convert -size 120x120 taxes.jpg.0 -geometry 120x120 +profile '*' thumbnail.jpg
я могу даже преобразовать PDF непосредственно в jpeg миниатюру следующим образом:
convert -size 120x120 taxes.pdf -geometry 120x120 +profile '*' thumbnail.jpg
Это приведет к миниатюре jpg.0 и миниатюре jpg.1 для двух страниц.
На самом деле, вы должны в основном хранить свои собственные данные / объекты состояния (в идеале смоделированные как классы DTO), и в этом случае ответ: любой вы пометьте как [Serializable]
или ISerializable
. Вы не должны добавлять необработанные элементы управления пользовательского интерфейса или другие неизвестные объекты в состояние сеанса. В частности, по причинам , подобным этой , которые на днях сильно повлияли на производительность приложения.
В MbUnit (теперь Gallio) есть тест Assert.IsSerializable (), который может пригодиться здесь.
Лучшее, что я мог сделать в подобной ситуации, - это посмотреть на каждый объект, на который ссылается сеанс, и проверить его на наличие атрибута Serializable (или на то, что объект реализует интерфейс ISerialzable).