C# 从SharePoint下载图像会降低图像质量
我正在同步SharePoint用户配置文件中的图像,并将其保存在DB中。图像以DB的形式保存为VarBinary(MAX)。SharePoint中的图像看起来非常清晰。在数据库中保存后,我们在web应用程序中显示消息。问题是,尽管SharePoint配置文件图像显示非常清晰,但web应用程序图像仍然模糊。 关于如何提高信息质量(如减少模糊)有什么建议吗 下面显示了如何从SharePoint获取图像:-C# 从SharePoint下载图像会降低图像质量,c#,asp.net-mvc,C#,Asp.net Mvc,我正在同步SharePoint用户配置文件中的图像,并将其保存在DB中。图像以DB的形式保存为VarBinary(MAX)。SharePoint中的图像看起来非常清晰。在数据库中保存后,我们在web应用程序中显示消息。问题是,尽管SharePoint配置文件图像显示非常清晰,但web应用程序图像仍然模糊。 关于如何提高信息质量(如减少模糊)有什么建议吗 下面显示了如何从SharePoint获取图像:- private byte[] GetImageData(ClientContext conte
private byte[] GetImageData(ClientContext context, string pictureUrl)
{
//if (this.fedauthCookieContainer == null)
//{
Uri webUri = new Uri(pictureUrl);
var authCookie = this.GetCredentials().GetAuthenticationCookie(webUri);
var fedAuthString = authCookie.TrimStart("SPOIDCRL=".ToCharArray());
var cookieContainer = new CookieContainer();
cookieContainer.Add(webUri, new Cookie("SPOIDCRL", fedAuthString));
this.fedauthCookieContainer = cookieContainer;
//}
using (HttpClientHandler handler = new HttpClientHandler())
{
handler.CookieContainer = this.fedauthCookieContainer;
using (HttpClient client = new HttpClient(handler))
{
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/html,application/xhtml+xml,application/xml");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Encoding", "gzip, deflate");
//client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Charset", "ISO-8859-1");
return client.GetByteArrayAsync(pictureUrl).Result;
}
}
}
然后,在数据库中保存SharePoint中的图像后,我们将其显示在web应用程序中。下面的代码显示了如何从DB中获取图像
[HttpGet]
public async Task<HttpResponseMessage> Image(string email)
{
string mediaType = "image/jpeg";
HttpResponseMessage file = this.File(this.GetDefaultHeadshotImage(), mediaType);
var imageData = await this.profileService.GetProfileImage(email);
if (imageData != null)
{
file = this.File(imageData, mediaType);
}
return file;
}
[HttpGet]
公共异步任务映像(字符串电子邮件)
{
字符串mediaType=“image/jpeg”;
HttpResponseMessage file=this.file(this.GetDefaultHeadshotImage(),mediaType);
var imageData=wait this.profileService.GetProfileImage(电子邮件);
如果(imageData!=null)
{
file=this.file(imageData,mediaType);
}
返回文件;
}
以下是我们在web应用程序中显示图像的方式:-
<div class="widget-profile-user-image" data-bind="style: { backgroundImage: 'url(\'' + imageUrl() + '\')' }" style="background-image: url("/home/PDSPortal/api/Profile/Image?email=XYZ.ABC-LMN@am.jll.com");">
<div class="widget-profile-achieverStatus" data-bind="css: achieverStatusCss, visible: achieverStatus() != 'None'" style="display: none;">
<div class="text" data-bind="text: achieverStatus">None</div>
<div class="arrow"></div>
</div>
</div>
没有一个
您的浏览器可能正在缩放图像,引入了模糊效果。在Chrome和IE中都很模糊吗?“我怀疑这和你的DB有什么关系。”艾米-谢谢你的回复。IE和Chrome都很模糊?现在该怎么办?将文件保存到GetImageData
中的磁盘,然后查看其是否仍然模糊。在从数据库加载文件时执行相同的操作。隔离引入模糊的位置。