문제

몇 달 전에 나는 다음과 같은 온라인 샘플을 만들었습니다. 이것은 Jeff Prosise의 것입니다 Silverlight의 WriteblityBitMap 클래스를 사용합니다.

오늘날 최신 Silverlight3 설치 프로그램 (3.0.40624.0)으로 다시 방문하면 API가 변경된 것으로 보입니다.

나는 몇 가지 변화를 알아 냈습니다. 예를 들어, Writ

 bmp[x]

난 쓸수있다

bmp.Pixels[x]

이러한 통화에 대해 유사한 간단한 교체가 있거나 사용 패턴 자체가 변경 되었습니까?

bmp = new WriteableBitmap(width, height, PixelFormats.Bgr32);
bmp.Lock();
bmp.Unlock();

누구든지 업데이트 된 API를 사용하여 작업 예제를 알려줄 수 있습니까?

도움이 되었습니까?

해결책

사용하지 않으면 어떻게됩니다 Lock 그리고 Unlock 그리고 그냥 사용하십시오 WritabelBitmap(int, int) 건설자? 일이 깨지나요?

SL3 베타와 릴리스 사이 에서이 API가 변경된 것으로 보입니다. 문서 errata (Silverlight 3)를 깨기는 참조

다른 팁

새로운 writeblebitmap으로 전환하는 것에 대한 또 다른 중요한 세부 사항은 다음과 같습니다. 이 답변 ... 픽셀 형식은 이제 항상 PBGRA32이므로 각 픽셀에 대한 알파 값을 설정해야합니다. 그렇지 않으면 모든 흰색 사진을 얻을 수 있습니다. 다시 말해, 이전에 픽셀 값을 생성 한 코드는 다음과 같습니다.

byte[] components = new byte[4];
components[0] = (byte)(blue % 256);       // blue
components[1] = (byte)(grn % 256);        // green
components[2] = (byte)(red % 256);        // red
components[3] = 0;                        // unused

읽기로 변경해야합니다.

byte[] components = new byte[4];
components[0] = (byte)(blue % 256);       // blue
components[1] = (byte)(grn % 256);        // green
components[2] = (byte)(red % 256);        // red
components[3] = 255;                      // alpha
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top