Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从SharePoint下载图像会降低图像质量_C#_Asp.net Mvc - Fatal编程技术网

C# 从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

我正在同步SharePoint用户配置文件中的图像,并将其保存在DB中。图像以DB的形式保存为VarBinary(MAX)。SharePoint中的图像看起来非常清晰。在数据库中保存后,我们在web应用程序中显示消息。问题是,尽管SharePoint配置文件图像显示非常清晰,但web应用程序图像仍然模糊。 关于如何提高信息质量(如减少模糊)有什么建议吗

下面显示了如何从SharePoint获取图像:-

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(&quot;/home/PDSPortal/api/Profile/Image?email=XYZ.ABC-LMN@am.jll.com&quot;);">
            <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
中的磁盘,然后查看其是否仍然模糊。在从数据库加载文件时执行相同的操作。隔离引入模糊的位置。