2009-11-11 89 views
0

我有一個網絡目錄,其中包含我們公司所有員工照片的轉儲。圖像被命名爲FirstnameLastinitial.jpg。我最終試圖在Silverlight中構建這些圖片的照片瀏覽器,但我想我會從如何從該位置收集圖片開始。從Silverlight(混合)文件夾中顯示圖像

我想我應該生成基於該文件夾中的圖片的基於XML文件,或者我應該使用數據庫。然後,我可以使用Wall3D control in Blend來顯示它們。這只是一種可能的方式來顯示它們。

如果我創建一個XML的shell,如下所示,那麼我可以允許我的應用程序在生成後修改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; 

我希望能夠做的是從本地網絡共享(\\服務器\共享\ filename.jpg)或從服務器上的Web部分文件夾閱讀。

回答

1

所以,有一點要記住的是,Silverlight是一個客戶端副技術。您在Silverlight中編寫的所有代碼均在Web服務器上的客戶端計算機上執行,而不是。所以,如果你問「Silverlight可以從文件夾中讀取文件嗎?「,看來你問的是Silverlight是否可以讀取客戶機器上的文件,答案是否定的,因爲這顯然是一個重大的安全問題。

但我推測你想讀取目錄上的文件。在服務器,而不是客戶上;這也不能這樣做,因爲服務器上沒有執行的代碼

所以,做你想做的事,你可以做這樣的事情: 通過網絡服務器創建圖像目錄,以便您可以通過http://server/images/FirstnameLastinitial.jpg等訪問圖像。現在,您可以使用普通的圖像元素顯示圖像,設置來源到適當的URL。

然後剩下的問題是; Silverlight應用程序如何知道可用的圖像?即它需要能夠以某種方式「獲取目錄列表」。這是必須由Web服務器提供的。如果你願意,你可以設置一些Web服務,Silverlight應用程序可以調用它來獲取圖像URL列表。或者,如果你想要完全簡單的解決方案;只需將文本文件放在http://server/images/list.txt,其中包含在那裏找到的圖像列表,並使用WebClient.DownloadString從Silverlight下載此列表。

無論你使用網絡服務還是文本列表取決於你(網絡服務可能更好,但稍微複雜一些)。

0

我不是說要脫離主題或什麼,你是否絕對需要使用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進行遊戲,通過使用alpha來使圖片「更白」。 Php很簡單,大部分事情都已完成。谷歌將是一個非常好的朋友:)

如果你堅持使用Silverlight tho,那麼我很抱歉我浪費了你的時間。

+0

絕對不是浪費我的時間。我建議Silverlight,因爲我們是A)一家微軟商店,B)我想學習SL,C)我想向老闆證明SL應用程序的外觀。如果我失敗了,那麼你的方向就是我去的方向。 – 2009-11-11 14:57:06

+0

如果你在Silverlight中犯了錯誤,在ASP.Net中執行這件事非常容易。如果你是一家以微軟服務器爲主的微軟商店,我會在php之前查看這個。 – 2009-11-11 15:05:37

+0

的確,大部分可以在php中完成的事情都可以在asp.net中完成。祝你好運! – 2009-11-11 15:12:36

相關問題