void descramblingPixels(int startX, int endX, int startY, int endY) { for (int k = 2; k >= 0; k--) { for (int i = endX - 1; i >= startX; i--) { for (int j = endY - 1; j >= startY; j--) { AlgorithmWrapper.WrapperPixels pixel = cppClass.descramblingPixels(i, j, k); Color first = Color.FromArgb(pixel.fR, pixel.fG, pixel.fB); Color second = Color.FromArgb(pixel.sR, pixel.sG, pixel.sB);; Color third = Color.FromArgb(pixel.tR, pixel.tG, pixel.tB);; if (VisualisationCheckBox.Checked) { if (Image1.InvokeRequired) { Image1.Invoke(new MethodInvoker( delegate() { bitmap.SetPixel(pixel.fposY, pixel.fposX, first); bitmap.SetPixel(pixel.sposY, pixel.sposX, second); bitmap.SetPixel(pixel.tposY, pixel.tposX, third); })); } } else { bitmap.SetPixel(pixel.fposY, pixel.fposX, first); bitmap.SetPixel(pixel.sposY, pixel.sposX, second); bitmap.SetPixel(pixel.tposY, pixel.tposX, third); } Progress(); } if (VisualisationCheckBox.Checked) { if (Image1.InvokeRequired) { Image1.Invoke(new MethodInvoker( delegate() { Image1.Image = bitmap; })); } } } } }
void threadScramblingPixels(object data) { ThreadParameters param = (ThreadParameters)data; for (int k = 0; k < 3; k++) { for (int i = param.startX; i < param.endX; i++) { for (int j = param.startY; j < param.endY; j++) { AlgorithmWrapper.WrapperPixels pixel = cppClass.threadScramblingPixels(i, j, k, param.startX, param.endX, param.startY, param.endY); } mutProgress.WaitOne(); Progress(); mutProgress.ReleaseMutex(); } } }
void threadDescramblingPixels(object data) { ThreadParameters param = (ThreadParameters)data; for (int k = 2; k >= 0; k--) { for (int i = param.endX - 1; i >= param.startX; i--) { for (int j = param.endY - 1; j >= param.startY; j--) { AlgorithmWrapper.WrapperPixels pixel = cppClass.threadDescramblingPixels(i, j, k, param.startX, param.endX, param.startY, param.endY); mutProgress.WaitOne(); Progress(); mutProgress.ReleaseMutex(); } } } }