Image载入大图会内存溢出,有无替代方案?
WM5,C#环境
Image img = new Bitmap(@ "D:\xx.jpg ");
因为图片比较大(2000×2000),这句会产生内存溢出,但是我用Resco Photo Viewer 5.32这款软件可以打开此图,只是出现一个进度掉,几秒后就打开了,说明一定有办法,向各位求助!
[解决办法]
NetCF加载图片比较耗费资源,下面的链接有evc写的imageloader.dll可以调用. 我试过,速度有提高,内存占用变小. 但是图片质量会下降.
http://www.microsoft.com/china/MSDN/library/Mobility/pocketpc/NETCompactFramework.mspx?mfr=true
[解决办法]
提供了的,你看看sample中的ResourceTest.cs中的方法LoadViaDLL和DrawFromDLL,其中调用了imageloader.dll中的非托管函数LoadBitmapFromResource
[DllImport( "ImageLoader.dll ", CharSet=CharSet.Unicode)]
public static extern IntPtr LoadBitmapFromResource (IntPtr hdc, uint dwResourceID, string pcszClass, IntPtr hModule);