Bug gefixt, der durch das TimeStamp-Objekt zustande kam.

This commit is contained in:
2024-06-06 10:07:34 +02:00
parent 6d2925628e
commit 02e4f31e85
7 changed files with 276 additions and 55 deletions

View File

@@ -44,6 +44,7 @@ namespace ChatController.Utilities
private static void DownloadImage(string uri, Action<ImageSource> callback)
{
var client = new RestClient(uri);
var request = new RestRequest
{
ResponseWriter = stream =>
@@ -473,42 +474,49 @@ namespace ChatController.Utilities
request.Headers[Constants.Token] = AuthToken;
request.Headers[Constants.CustomerId] = Tenant;
using(var response = request.GetResponse())
try
{
var responseStream = response.GetResponseStream();
if(responseStream is null)
using(var response = request.GetResponse())
{
return null;
}
var responseStream = response.GetResponseStream();
var rotation = Rotation.Rotate0;
using(var image = Image.FromStream(responseStream))
{
if(image.PropertyIdList.Contains(0x112))
if(responseStream is null)
{
rotation = GetRotationFromExifTag(image.GetPropertyItem(0x112).Value[0]);
return null;
}
var bitmap = new BitmapImage();
var rotation = Rotation.Rotate0;
var localStream = new MemoryStream();
using(var image = Image.FromStream(responseStream))
{
if(image.PropertyIdList.Contains(0x112))
{
rotation = GetRotationFromExifTag(image.GetPropertyItem(0x112).Value[0]);
}
image.Save(localStream, image.RawFormat);
var bitmap = new BitmapImage();
localStream.Position = 0;
var localStream = new MemoryStream();
bitmap.BeginInit();
bitmap.StreamSource = localStream;
bitmap.Rotation = rotation;
bitmap.EndInit();
bitmap.Freeze();
image.Save(localStream, image.RawFormat);
cache.AddAvatar(uri, bitmap, userId, groupId);
return cache.GetAvatar(uri, userId, groupId);
localStream.Position = 0;
bitmap.BeginInit();
bitmap.StreamSource = localStream;
bitmap.Rotation = rotation;
bitmap.EndInit();
bitmap.Freeze();
cache.AddAvatar(uri, bitmap, userId, groupId);
return cache.GetAvatar(uri, userId, groupId);
}
}
}
catch(Exception exception)
{
return null;
}
}
}
}