Bitmap x = new Bitmap(s.Width, s.Height);
Graphics g = Graphics.FromImage(x);
g.CopyFromScreen(0, 0, 0, 0, new Size(s.Width, s.Height), CopyPixelOperation.SourceCopy);
g.Dispose();
x.Save("x_before.png", ImageFormat.Png);
Graphics g1 = Graphics.FromImage(x);
g1.DrawImage(x); // to make sure the image is in g1 context
g1.CopyFromScreen(0, 0, 0, 0, new Size(s.Width, s.Height), CopyPixelOperation.SourceInvert);
g1.Dispose();
x.Save("x_after.png", ImageFormat.Png);
화면을 비트 맵으로 복사합니다. 그런 다음 동일한 비트 맵에 XOR 매개 변수 반전과 동일한 화면이 표시됩니다.CopyPixelOperation.SourceInvert가 작동하지 않습니다.
1 XOR 1 = 0
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
그 결과 검은 이미지이어야한다. 그러나 그렇지 않습니다.
CopyPixelOperation.SourceInvert가 작동하지 않는다는 의미입니까?
@Kirk : 대체 코드를 추가했습니다. 확인해 봐. –
@Kirk Robb : 이것을 시험해 보셨습니까? 이 대답이 질문에 대한 대답입니까? –
방금이 도구를 사용했는데 멋졌습니다. (위로 표시된 답변) 여전히 XOR 이미지에 대한 최상의 솔루션입니까? 또한 원본 이미지와이 XOR 이미지를 저장하면 XOR을 사용하여 새 이미지를 다시 얻을 수 있습니까? 감사! – Don