Дофиксил свое силверлайт приложение и написал костыль для получения доступа к WriteableBitmap после того, как он отрендерится на странице. Ну и опубликовал его в каталоге приложений, теперь буду ждать рассмотрения модератора.
В-общем, приложение прекрасно работало на localhost, но как только стал брать изображения извне, то узнал про одно ограничение в Silverlight. По каким-то соображениям безопасности приложение может комфортно работать только внутри своего домена, то бишь скачивать фотографии внутри домена, где хостится приложение, оно может, но вот извне - уже нет.
Нужно было отрендерить контрол в WriteableBitmap и отредактировать его, поэтому кровь из носа нужна была такая функциональность.
Варианты были такие:
1. Заливать изображения в IsolateStorage и затем брать оттуда (естественно опять таки нужен был доступ к WriteableBitmap, которого не было)
2. Скачивать изображение с помощью WebHttpResponse (получаем Security Exception - нельзя скачивать изображения вне своего домена, но можно кстати запрашивать всякие странички, то бишь txt/html/xml - без проблем)
3. Создать веб-сервис, который бы хостился в том же домене и отдавал картинку. И о чудо, оно работает как и планировалось
Итак, был создан wcf rest сервис, который в качестве параметра принимает ссылку на изображение. Если кому интересно, опубликую функцию... Встала проблема с модификатором доступа фотографий. По умолчанию на изображение не накладываются никакие ограничения, то есть любой человек, обладая ссылкой, может пройти по ней и увидеть изображение. Но социальные сети уже давно обзавелись модификатором доступа, поэтому не ко всем фотографиям можно будет получить доступ через данный сервис, так как сервис не знает нужную куку, через которую и реализовано разграничение по правам. Пришлось багу превращать в фичу - в описании написал, что приложение работает только с фотографиями с выставленным модификатором доступа "Для всех".
В SL4 аноносирована функция сохранения в User папку (например, Мои Рисунки). Надеюсь, это позволит избавиться от ограничения WriteableBitmap, потому как оно в первую очередь направлено на невозможность сохранения изображения из "левых" источников.