2013-12-20 2 views
0

매우 기본적인 이미지 편집기를 만들고 색상 (R, G, B) 값을 수치로 설정하려고합니다. 예를 들어, 내 코드 조각은 다음과 같습니다.포럼 응용 프로그램의 픽셀 색상 변경 C#

for (int row = 0; row < thePicture.Width; row = row + 1) 
{ 
    for (int col = 0; col < thePicture.Height; col = col + 1) 
    { 
     Color pixel = thePicture.GetPixel(row, col); 

     pixel = Color.FromArgb(5 + pixel.R, 5 + pixel.G, 5 + pixel.B); 
     //+5 is making the image darker... I think 
     if (pixel.R > 255)//This is used to prevent the program from crashing 
     { 
      pixel.R = //is this possible? or another way? I am intending 
     }    //Make this 255      
     thePicture.SetPixel(row, col, pixel); 
    } 
} 

Windows 포럼에 있다는 것을 기억하십시오. Nothhing 너무 C#의 매우 기본적인 이해하시기 바랍니다. 감사합니다

답변

1

System.Drawing.Color.R 속성에 대한 MSDN 기사에서.

속성 R은 읽기 전용입니다 (getter 만 정의 됨). 따라서 새 색상을 만들어야합니다.

시도 pixel = Color.FromArgb(pixel.A, Math.Min(255, pixel.R + 5), pixel.G, pixel.B);

Explaination :

우리는 이전 색상의 A (알파), R (빨강), G (녹색), B (청색) 속성 값을 사용하여 새 색상을 만들 것입니다.

그러나 R의 경우 이전 R 값을 전달하는 대신 조정 된 R 값을 전달합니다. Math.Min(x,y)을 사용하여 "밝게 된"R 값이 최대 255 값을 초과하지 않도록 할 수 있습니다.

+0

매우 유용합니다! 감사 – user2970816