C# 如何用C语言处理大图像#

C# 如何用C语言处理大图像#,c#,image-processing,C#,Image Processing,我在尝试加载图像时内存不足,例如jpg中的20MB或bmp中的200MB,我们的地图控件中有一个相当大的(~50MB)光栅图像 解决方案是将主图像切成小块,然后加载到图像[,]数组中 您可以使用Graphics.DrawImage(..)绘制这些片段 只有一个大问题:如果需要在屏幕上显示整个图片,绘图过程可能会很慢。这是一个保存缩略图并在需要时显示缩略图的好方法。我们的地图控件中有一个相当大的(~50MB)光栅图像 解决方案是将主图像切成小块,然后加载到图像[,]数组中 您可以使用Graphic

我在尝试加载图像时内存不足,例如jpg中的20MB或bmp中的200MB,我们的地图控件中有一个相当大的(~50MB)光栅图像

解决方案是将主图像切成小块,然后加载到图像[,]数组中

您可以使用Graphics.DrawImage(..)绘制这些片段

只有一个大问题:如果需要在屏幕上显示整个图片,绘图过程可能会很慢。这是一个保存缩略图并在需要时显示缩略图的好方法。

我们的地图控件中有一个相当大的(~50MB)光栅图像

解决方案是将主图像切成小块,然后加载到图像[,]数组中

您可以使用Graphics.DrawImage(..)绘制这些片段


只有一个大问题:如果需要在屏幕上显示整个图片,绘图过程可能会很慢。保存缩略图并在需要时显示缩略图是一个很好的解决方法。

我认为web.config中可能有一个设置,允许您的应用程序使用超过默认内存量的内存。否则,如果是web应用程序,请创建一个更大的应用程序池

还要确保您正在尽快处理()资源


默认情况下,.net不会使用任何花哨的技巧来提高内存效率。这本身并不坏,但对你没有任何好处。

我认为web.config中可能有一个设置,允许你的应用程序消耗超过默认内存量。否则,如果是web应用程序,请创建一个更大的应用程序池

还要确保您正在尽快处理()资源


默认情况下,.net不会使用任何花哨的技巧来提高内存效率。它本身并不坏,但对您没有任何好处。

如果您使用WPF,您可以将图像的“缩略图”加载到内存中,这可能是一种更合理的分辨率:

BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.DecodePixelWidth = 100;
bitmapImage.UriSource = new Uri(imageData.Name);
bitmapImage.EndInit();

this.imageControl.Source = bitmapImage;

如果您使用的是WPF,您可以将图像的“缩略图”加载到内存中,这可能是一种更合理的分辨率:

BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.DecodePixelWidth = 100;
bitmapImage.UriSource = new Uri(imageData.Name);
bitmapImage.EndInit();

this.imageControl.Source = bitmapImage;

请尝试在问题中提供更多细节,以便人们能够更轻松地帮助回答问题。:)请尝试在问题中提供更多细节,以便人们能够更轻松地帮助回答问题。:)然而,塞内博特罗从未说过这是一个web应用程序。