我从我的源代码中提取了以下与此相关的代码:
using (Bitmap spriteBitmap = new Bitmap(Width, Height, PixelFormat.Format32bppArgb))
{
using (Graphics spriteGraphics = Graphics.FromImage(spriteBitmap))
{
Rectangle imageRect = new Rectangle(0, 0, imageInfo.Width, imageInfo.Height);
using (Bitmap clonedImageBitmap = imageInfo.ImageBitmap.Clone(imageRect, spriteBitmap.PixelFormat))
{
clonedImageBitmap.SetResolution(spriteBitmap.HorizontalResolution, spriteBitmap.VerticalResolution);
spriteGraphics.DrawImage(
clonedImageBitmap,
mappedImageInfo.X, mappedImageInfo.Y,
imageRect,
GraphicsUnit.Pixel);
spriteGraphics.Flush(FlushIntention.Flush);
}
imageInfo.DisposeBitmap();
}
}
此代码与 azure 的计算模拟器在本地完美配合。但是,当我部署它并执行代码时,它不再起作用,并且在 spriteGraphics.DrawImage 处失败,并出现著名的 ArgumentException“参数无效”。
出于测试目的,我记录了 clonedImageBitmap 的详细信息,以查看是否有不同之处。我发现在本地和云中唯一不同的是 .Flags -> 在本地我有 77842 和在云中 77846 所以看起来 ImageFlagsHasTranslucent 已设置,但如果这会导致云中的问题以及如何可以是我目前不知道的。
也许有人可以帮助我解决这个奇怪的问题?
提前致谢。
赫曼新