다음 코드를 병렬화 하려면 어떻게 해야하나요??
-
2012년 5월 23일 수요일 오전 5:23
Bitmap image1 = new Bitmap(@"d:\image001.jpg", true);
for (int x = 0; x < image1.Width; x++)
{
for (int y = 0; y < image1.Height; y++)
{
Color pixelColor = image1.GetPixel(x, y);
Color newColor = Color.FromArgb(0, pixelColor.G, pixelColor.B);
image1.SetPixel(x, y, newColor);
}
}코드는 위에서 보다시피
이미지 파일하나 열어서 모든 픽셀 순환하면서
각 픽셀의 값을 특정 픽셀값으로 변경하는 루틴입니다.
코드는 간단한데...
동작은 간단하게 되질 않네요... ^^;;
Parallel.For()를 써봤는데... 하나의 이미지를 여러 스레드에서 사용한다면서 에러를 토하네요...
PLINQ든 TPL이든 방법을 써서 병렬화 처리를 하는 방법은 뭐가 있을까요??
C#을 접한지 얼마 안된 초보이다 보니 다양한 방법을 적용하기가 버겁네요.
고수님들의 조언 부탁드립니다. (__)
JWBaek
모든 응답
-
2012년 5월 24일 목요일 오후 12:17
쓰다 보니 답변이 길어져서 아예 다음과 같은 글로 하나 정리를 해봤습니다.
System.Drawing.Bitmap 데이터를 Parallel.For로 처리하는 방법
; http://www.sysnet.pe.kr/2/0/1293
보시고, 혹시 더 궁금한 사항이 있으시면 덧글 남겨주세요. ^^- 답변으로 표시됨 Jina LeeModerator 2012년 5월 30일 수요일 오전 6:03
-
2012년 5월 25일 금요일 오전 7:32
와우~
일일이 샘플 테스트까지 작성하셔서 비교까지 해서 보여주시니
정말 몸둘바를 모르겠습니다.
Bitmap을 병렬처리하기 위해선 비트맵데이터에 직접 접근해야하는군요..
훔...그래야 할거라 예상은 했었는데...
암튼 정성태님의 코드를 보고 많은 정보를 얻었습니다.
진심으로 감사합니다. (__)
JWBaek
- 편집됨 JW_Destroy 2012년 5월 25일 금요일 오전 7:33

