트랙 바를 슬라이드 할 때 이미지의 색조를 부드럽게 변경하는 더 좋은 방법이 있습니까? 내가하고있는 일은 픽셀 당 RGB 값을 얻고 채도와 밝기를 계산 한 다음 값을 넣는 것입니다. 이미지의 크기는 색조가 업데이트되는 속도에 영향을줍니다. Photoshop의 이미지 색상 기능은 색상을 0에서 360으로 부드럽게 변경합니다. 이는 내가 시도하고 싶은 부분입니다. 당신은 조회 테이블을 사용하여 시도 할 수이미지 색조를 빠르게 변경하는 방법은 무엇입니까?
data = editImage.LockBits(new Rectangle(0, 0, editWidth, editHeight),
ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
byte* dataPtr = (byte*)data.Scan0;
h = trackBar1.Value/60.0;
D = 1 - Math.Abs((h % 2) - 1);
if (h >= 0 && h < 1)
{
for (int i = 0; i < editHeight; i++)
{
offsetStride = i * data.Stride;
for (int j = 0; j < editWidth; j++)
{
blue = dataPtr[(j * 3) + offsetStride];
green = dataPtr[(j * 3) + offsetStride + 1];
red = dataPtr[(j * 3) + offsetStride + 2];
if (green > blue) max = green;
else max = blue;
if (red > max) max = red;
if (green < blue) min = green;
else min = blue;
if (red < min) min = red;
s = (max == 0) ? 0 : 1d - (1d * min/max);
v = max/255d;
C = v * s;
X = C * D;
E = v - C;
dataPtr[(j * 3) + offsetStride] = (byte)(min);
dataPtr[(j * 3) + offsetStride + 1] = (byte)((X + E) * 255);
dataPtr[(j * 3) + offsetStride + 2] = (byte)(max);
}
}
}
전체 이미지의 색조를 변경하고 싶습니다.따라서 RGB 이미지가 있고 색조를 60으로 변경하면 이미지가 그 위에 노란색 필터가있는 회색 음영 이미지처럼 보입니다. – Jack
나는 방금 오류가 있었고 위의 텍스트를 업데이트했다는 것을 깨달았습니다. 당신은 3 개가 아니라 6 개의 이미지가 필요합니다. –