Bitmap 对象将 rgb(13,11,12) 转换为 rgb(211,211,211)?
好吧,这是一个奇怪的问题。对于了解这一点的人来说是巨大的支持。
我有这段代码,它裁剪图像的一部分,并将其放入 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。
任何人都知道为什么以及如何发生这种情况,以及我是否可以在不将像素更改为不同颜色的情况下解决这个问题?
Ok, this is a strange one. Huge props to the person that knows this.
I have this code, that crops part of an image, and puts it in 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);
}
}
For some strange reason, all colors that have RGB values of R:13, G:11, B:12 are changed to R:211, G:211, B:211. Notice the DrawImage? bmpCropped is drawn on the screen, where I'm not seeing the 211,211,211 at all. But if I save the image using bmpCropped.Save(...), I am seeing the 211,211,211.
Anyone has any clues on why and how this is happening, and if I can get around this problem without changing the pixel to a different color?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
听起来你有一个使用透明度键的透明源位图。目的地的背景颜色通过透明像素显示。
Sounds like you have a transparent source bitmap using a transparency key. The background color of your destination shows through the transparent pixels.