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