好的,这是一个奇怪的。知道这一点的人的巨大道具。
我有这段代码,用于裁剪图片的一部分,并将其放入bmpCropped
。
void CropImage()
{
int W = nowX - StartX;
int H = nowY - StartY;
if (W > 0 && H > 0)
{
bmpCropped = new Bitmap(W, H);
Graphics gfxCropped = Graphics.FromImage(bmpCropped);
gfxCropped.DrawImage(bmpOriginal, new Rectangle(0, 0, W, H), new Rectangle(StartX, StartY, W, H), GraphicsUnit.Pixel);
}
}
由于某些奇怪的原因,RGB值为R:13,G:11,B:12的所有颜色都变为R:211,G:211,B:211。请注意DrawImage?屏幕上绘制了bmpCropped,我根本没有看到211,211,211。但如果我使用bmpCropped.Save(...)保存图像,我会看到211,211,211。
任何人都有任何关于为什么以及如何发生这种情况的线索,如果我可以解决这个问题而不将像素更改为不同的颜色?
答案 0 :(得分:2)
听起来你有一个使用透明度密钥的透明源位图。目的地的背景颜色通过透明像素显示。