Load images within datapacket delayed and cache them locally

This commit is contained in:
lukeIam committed 2013-12-13 17:43:18 +01:00
1 parent 08f4428e28
commit 2f2349ffbb
6 files changed
+133 -21

No files matched your search

@@ -68,6 +68,13 @@ namespace ServerLib
set { CServer.getSiteFile = value; }
}
private static GetDelayedImageDelegate getDelayedImage;
public static GetDelayedImageDelegate GetDelayedImage
{
internal get { return CServer.getDelayedImage; }
set { CServer.getDelayedImage = value; }
}
#endregion
#region songs
@@ -96,6 +96,12 @@ namespace ServerLib
UriTemplate = "/img/{filename}")]
Stream GetImgFile(String filename);
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/delayedImage?id={id}")]
Base64Image GetDelayedImage(String id);
#endregion
#region songs
@@ -382,6 +388,11 @@ namespace ServerLib
}
}
public Base64Image GetDelayedImage(string id)
{
return CServer.GetDelayedImage(id);
}
#endregion
#region songs
@@ -58,6 +58,8 @@ namespace ServerLib
public delegate byte[] GetSiteFileDelegate(string filename);
public delegate Base64Image GetDelayedImageDelegate(string hashedFilename);
#endregion
[DataContract]
@@ -66,6 +68,9 @@ namespace ServerLib
[DataMember]
private string base64Data = "";
[DataMember]
private string imageId = "";
public Base64Image(Image img, ImageFormat format)
{
MemoryStream ms = new MemoryStream();
@@ -74,6 +79,11 @@ namespace ServerLib
base64Data = "data:image/" + formatString + ";base64," + Convert.ToBase64String(ms.ToArray());
}
public Base64Image(string imageId)
{
this.imageId = imageId;
}
public Image getImage()
{
string onlyBase64Data = base64Data.Substring(base64Data.IndexOf(";base64,") + (";base64,").Length);