이 문제에 대한 샘플 코드는, 그래서 대부분 설명이 필요하다 :이 경우Image.Clear (x) 이후의 색상이 x 색상과 정확히 일치하지 않는 이유는 무엇입니까?
[Fact]
private void Color_in_should_equal_color_out()
{
var bitmap = new Bitmap(128,128,PixelFormat.Format32bppArgb);
var color = Color.FromArgb(30,60,90,120);
using (var g = Graphics.FromImage(bitmap))
{
g.Clear(color);
}
var result = bitmap.GetPixel(0,0);
Assert.Equal(color, result);
}
나는 배경의 색이 나는 그것이 클리어 컬러와 동일 할 것으로 예상한다. 대신 나는 이것을 얻는다 :
Assert.Equal() Failure
Expected: Color [A=30, R=60, G=90, B=120]
Actual: Color [A=30, R=59, G=93, B=119]
이것은 어떻게 가능한가?
일부 통과 : 실패
Color.FromArgb(0, 0, 0, 0);
Color.FromArgb(255, 255, 255, 255);
좀 더 예 :
Expected: Color [A=32, R=64, G=96, B=128]
Actual: Color [A=32, R=63, G=95, B=127]
Expected: Color [A=128, R=192, G=32, B=16]
Actual: Color [A=128, R=191, G=31, B=15]
Expected: Color [A=32, R=192, G=127, B=90]
Actual: Color [A=32, R=191, G=127, B=87]
PS : 검색했습니다. 이게 중복 된 것 같지 않아, 내가 찾을 수있는 가장 가까운 성냥은 http://stackoverflow.com/questions/721324/using-toargb-followed-by-fromargb-does-not-result-in-the-original- color 및 http://stackoverflow.com/questions/2032398/why-does-color-isnamedcolor-not-work-when-i-create-a-color-using-color-fromargb – nathanchere