private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Cancelled || e.Result == null)
{
return;
}
object[] result = (object[])e.Result;
int[] pixels = (int[])result[0];
int width = (int)result[1];
int height = (int)result[2];
OnImageSourceCompleted onCompleted = (OnImageSourceCompleted)result[3];
WriteableBitmap wb = new WriteableBitmap(width, height);
for (int i = 0; i < height; i++) // Height (y)
{
for (int j = 0; j < width; j++) // Width (x)
{
int temp = pixels[i * width + j];
wb.Pixels[i * width + j] = temp;
}
}
onCompleted(wb);
}