Изменить размер изображения из поля изображения Sitecore после прочтения

Кто-нибудь может сказать мне, как я могу изменить размер изображения, прочитанного из Sitecore ImageField?

После того, как я прочитал его из этого конкретного поля изображения, я формирую из него Sitecore MediaItem и генерирую его 64-битное представление. Проблема в том, что он приходит в большем размере, чем мне нужно.

Кто-нибудь может мне помочь, пожалуйста!

С уважением, Мариус.


person Marius Popa    schedule 16.09.2014    source источник
comment
Под медиа-элементом вы подразумеваете медиа-элемент Sitecore?   -  person nsgocev    schedule 16.09.2014
comment
Да. Медиаэлемент Sitecore. Я отредактировал свой исходный пост, чтобы быть более понятным   -  person Marius Popa    schedule 16.09.2014


Ответы (1)


Я предполагаю, что вы конвертируете изображение с помощью MediaItem.GetMediaStream(), создаете из него массив байтов, а после этого вы создаете строку base64 из изображения. Проблема изменения размера теперь становится проблемой .net, а не Sitecore. Есть несколько способов изменить размер изображения в С#. Вы можете обратиться к этому сообщению о переполнении стека о том, как изменить размер изображения:

Как я могу изменить размер изображения в С#?

Изменение размера изображения на лету в .net и С#

Если вы решите отказаться от части кода для изменения размера и вместо этого использовать Sitecore MediaManager, есть параметры строки запроса, которые помогут вам изменить размер самого изображения. Дополнительную информацию о параметры строки запроса.

person nsgocev    schedule 16.09.2014
comment
Да, вы правы насчет конвертации. Итак, например, что касается второй ссылки, которую вы предоставили, как мне ее использовать в моем случае? Из чего я должен сформировать свое растровое изображение, как это описано там? - person Marius Popa; 16.09.2014
comment
@MariusPopa, вы можете использовать поток, который вы получаете от GetMediaStream() - person nsgocev; 16.09.2014
comment
Большое спасибо за Вашу помощь. Я создал изображение из MediaItem.GetMediaStream() и выполнил всю его обработку. - person Marius Popa; 16.09.2014
comment
@MariusPopa рад, что помог! - person nsgocev; 16.09.2014