我有大约28-30米的3幅标图。 我的运用需要经常从这些图像中获取图象。
目前,我正在编造所有3份档案的比特马塔,锁定这些档案,然后用3份不同的星号阅读所有书目。 如下:
System.Drawing.Imaging.BitmapData bmpData = result.LockBits(new System.Drawing.Rectangle(0, 0, result.Width , result.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite,((System.Drawing.Bitmap)Properties.Resources.bmp1).PixelFormat);
int pixelBytes = System.Drawing.Image.GetPixelFormatSize(((System.Drawing.Bitmap)Properties.Resources.silk_box).PixelFormat) / 8;
System.IntPtr ptr = bmpData.Scan0;
int size = bmpData.Stride * result.Height;
byte[] pixels = new byte[size];
System.Runtime.InteropServices.Marshal.Copy(ptr, pixels, 0, size);
所有3幅标都添加到申请资源中。
问题...... 尽管上述方法正在实行罚款。 唯一的问题是业绩。 它需要大约10-12秒的时间,才能将比图转换成沥青,并使用特定的子。
我的猜测是以下线,需要很多时间:
System.Runtime.InteropServices.Marshal.Copy(ptr, pixels, 0, size);
For the purpose, I am thinking to add the byte[] of all the 3 images to the application resources so that it can be directly accessed and conversion of the images to byte[] will be not required. The performance should increase then.
上述方法是否会被trick弄?
我需要知道,如何将图像推向外,然后添加到应用资源中?
是否还有其他解决办法?
增 编