Отображать изображения из папки с помощью Silverlight (Blend) - PullRequest
0 голосов
/ 11 ноября 2009

У меня есть сетевой каталог, в котором есть дамп всех фотографий сотрудников здесь, в нашей компании. Изображения называются FirstnameLastinitial.jpg. В конечном итоге я пытаюсь создать в Silverlight браузер фотографий из этих фотографий, но я подумал, что начну с того, как собрать фотографии из этого места.

Я бы подумал, что мне нужно сгенерировать файл XML на основе картинок в этой папке, или, может быть, мне следует использовать БД. Тогда я мог бы использовать, может быть, Wall3D элемент управления в Blend для их отображения. Это был бы только один из возможных способов их отображения.

Если я создаю оболочку XML, как показано ниже, могу ли я затем разрешить моему приложению изменять XML после генерации?

  <Photo>
<URL>Images/img10.jpg</URL>
<ImageName>Test 2</ImageName>
<ImageDescription>This is a picture of someone</ImageDescription>
 </Photo>

Еще одна мысль, которая пришла мне в голову. Способен ли Silverlight считывать изображения с места или их нужно включить в XAP? Что если я использовал службы RIA для передачи изображений в приложение Silverlight?

Кто-нибудь пробовал что-то подобное? Я знаю, что я ХОЧУ сделать, но я признаю, что это все очень новое для меня основание, и поэтому я был бы признателен за любые указания, указания, понимание или, если бы ничего не помогало, указывало бы мне направление.

Вот пример , аналогичный тому, для чего я стреляю -> http://tozon.info/gallery/


У меня есть ниже, который может прочитать изображение, но только с http, например, ->

BitmapImage bi = new BitmapImage();
        bi.UriSource = new Uri("http://upload.wikimedia.org/wikipedia/en/d/d6/Dragon_Age.jpg");
        MyImage.Source = bi;

То, что я хочу сделать, это прочитать их с локальной сетевой папки ( \\ server \ share \ filename.jpg ) или из папки в веб-части на сервере.

Ответы [ 2 ]

1 голос
/ 11 ноября 2009

Итак, следует помнить, что Silverlight является клиентской побочной технологией. Весь код, который вы пишете в Silverlight, выполняется на компьютере клиента, , а не на веб-сервере. Таким образом, если вы спросите «Может ли Silverlight читать файлы из папки?», То выясняется, что вы спрашиваете, может ли Silverlight читать файлы с клиентского компьютера, и ответ «нет», потому что это, безусловно, является серьезной проблемой безопасности.

Но я предполагаю, что вы хотите читать файлы из каталога на сервере , а не на клиенте ; это также невозможно сделать, так как код не выполняется на сервере.

Итак, чтобы делать то, что вы хотите, вы можете сделать что-то вроде этого: Сделайте каталог изображений доступным через веб-сервер, чтобы вы могли получать доступ к изображениям через http://server/images/FirstnameLastinitial.jpg, и т. Д. Теперь вы можете отображать изображения с обычным элементом Image, задав для Source соответствующий URL-адрес.

Тогда проблема остается; Как приложение Silverlight может узнать, какие изображения доступны? то есть он должен быть в состоянии каким-то образом «получить список каталогов». Это то, что должно быть предоставлено веб-сервером. Если вы хотите, вы можете настроить какой-либо веб-сервис, который приложение Silverlight может вызывать, чтобы получить список URL-адресов изображений. Или, если вы хотите пойти на совершенно простое решение; просто поместите текстовый файл в http://server/images/list.txt, который содержит список найденных там изображений, и из Silverlight используйте WebClient.DownloadString для загрузки этого списка.

Идете ли вы с веб-сервисом или текстовый список зависит от вас (веб-сервис, вероятно, лучше, но немного сложнее).

0 голосов
/ 11 ноября 2009

Я не хочу быть не по теме или что-то еще, вам абсолютно необходимо использовать Silverlight? Я не установил и никогда не использовал его, поэтому я не вижу, как он выглядит на сайте, который вы разместили в ссылке. Что я знаю, так это то, что вывод изображений в виде альбома из изображений в каталоге очень и очень прост в PHP:

1 - Сканирование каталога по картинкам:

 $dir = opendir($filePath);
 $fileCount = 0;
 while ($file = readdir($dir)) {
     if (eregi($Ext,$file)) { //$Ext = Extension of the file you're looking for (.jpg)
         $files[$fileCount] = $file;
         $fileCount++;
     }
 }
 sort($files);//This will, obviously, sort the array alphabetically.
 return $files;

2 - Выполнить через массив (для, пока, что угодно) и вывести путь к файлу в каком-то контейнере:

echo '<div id="img'.$i.'" class="pictures"><img src="'.$ArrayOfPictures[$i].'" /></div>';

3 - Вот и все. Вы также можете добавить функцию для создания миниатюр, а затем добавить ссылку на миниатюру, которая будет отображать изображение на весь экран при нажатии. Вы можете поиграть с CSS и javascript, чтобы сделать картинки "белее" при наведении мыши, используя альфа. Php прост и в основном все сделано. Google был бы очень хорошим другом:)

Если вы застряли с Silverlight, ну, извините, я потратил впустую ваше время.

...