public byte[] getBytes(int type, int color)
{
Bitmap bit = Art.GetStatic(type);
if(color != 0) RedrawHue.RecolorFull(hues[color], bit);
Bitmap newbit = new Bitmap(bit.Width, bit.Height);
Graphics newgraph = Graphics.FromImage(newbit);
newgraph.DrawImage(bit, 0, 0);
this.forImgPictureBox.Image = newbit;
MemoryStream ms = new MemoryStream();
newbit.Save(ms, ImageFormat.Png);
byte[] res = ms.ToArray();
ms.Dispose();
return res;
}
GetStatic和Recolor功能的作用并不重要,但问题是在使用此功能后越来越多次 - 我的img越来越暗......这不是开玩笑 - 第一次它很轻,之后3次有一点灰色,经过7次全黑。
发生了什么事? o.O
如果我在这一行之后做出破坏:
Bitmap newbit = new Bitmap(bit.Width, bit.Height);
VS告诉我,每次更新都会改变,但不是。
答案 0 :(得分:1)
我认为这一行:
if(color != 0) RedrawHue.RecolorFull(hues[color], bit);
你的问题。根据您传递的值,您将复合图像的色调并使其每次变暗。
根据您的描述,我假设您在每次迭代时传递相同的图像。换句话说,您正在传递图像,更改色调,然后传递生成的图像,更改它的色调等。
色调变化会产生累积效应。这不像是换色。
祝你好运!