Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.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# 如何从SQL Server检索图像的宽度和高度属性?_C#_Asp.net_Image Processing - Fatal编程技术网

C# 如何从SQL Server检索图像的宽度和高度属性?

C# 如何从SQL Server检索图像的宽度和高度属性?,c#,asp.net,image-processing,C#,Asp.net,Image Processing,我正在使用此方法从SQL Server检索图像,以便在ASP.NET 4.0应用程序的新页面上显示我的一篇文章: 然后,我将使用以下方法在新窗口中显示图像:我的一篇文章: 我要做的是获取图像的高度和宽度,以便创建与存储图像具有相同高度和宽度的新窗口。我想有两种方法可以做到这一点: 在“我的数据库”中创建“高度和宽度”列,并在将图像插入数据库时存储这些值 从数据库中检索图像,并在显示之前以某种方式计算高度和宽度,然后将浏览器窗口调整为正确大小。 我的数据库中已经有150多个图像,这使得选项1变得很

我正在使用此方法从SQL Server检索图像,以便在ASP.NET 4.0应用程序的新页面上显示我的一篇文章:

然后,我将使用以下方法在新窗口中显示图像:我的一篇文章:

我要做的是获取图像的高度和宽度,以便创建与存储图像具有相同高度和宽度的新窗口。我想有两种方法可以做到这一点:

在“我的数据库”中创建“高度和宽度”列,并在将图像插入数据库时存储这些值 从数据库中检索图像,并在显示之前以某种方式计算高度和宽度,然后将浏览器窗口调整为正确大小。 我的数据库中已经有150多个图像,这使得选项1变得很困难,因为我必须返回数据库并计算已经在数据库中的图像的高度和宽度。因此,我更愿意使用选项2,或者可能还有另一个选项?我该怎么做呢


感谢您的关注。

从长远来看,编写一个小程序从数据库中获取所有图像要比解析需要显示图像的页面的每个请求上的图像数据有效得多。请记住,页面本身通常根本不需要加载图像数据,只需要包含对它的引用。此外,即使是对实际映像的请求,通常也只是从数据库中获取blob并将其返回给客户机,而不需要任何潜在的昂贵的内部加载

大约需要20分钟的时间来编写一些代码,依次获取每个图像作为字节数组,使用MemoryStream使用BitmapStream构造函数加载它来包装字节数组,询问位图的尺寸,然后将其写入数据库

这20分钟的工作将使您不必在每次要显示页面时为页面上即将显示的每个图像加载图像数据。无论如何,您仍然需要编写代码来从数据中加载图像,但这种情况会发生得更频繁,而且发生的时间可能不是您真正想要的时间。

类似于:

System.Drawing.Image image = System.Drawing.Image.FromStream( 
    new System.IO.MemoryStream((byte[]) SqlReader["img_data"]) 
);

int width = image.Width;
int height = image.Height;

我不明白获得150张图片的尺寸是多么的困难,因为你无论如何都得这么做。在保存方面做得最好-在数据库中存储宽度和高度,否则性能和内存需求会很差,因为您需要解码图像-这就是上面的功能-对于每个请求,仅获取宽度和高度。非常感谢-这帮助很大。