: 아니요, Silverlight 4에는 새로운 기능이 없습니다. WriteableBitmapEx은 누락 된 기능을 보완하려고 시도합니다.
실제 문제 : BitmapImage.ImageFailed 이벤트에 처리기를 추가하여 이미지를 다운로드해야 할 때 오류가 있는지 확인해야합니다. 그리고 ImageOpened 이벤트 처리기에 WriteableBitmap을 만들어야합니다.
var image = new BitmapImage(new Uri("http://www.example.com/example.png"));
WriteableBitmap newImage = null;
image.ImageOpened += (s, e) => newImage = new WriteableBitmap(image);
도메인 간 참조가 허용됩니다. 자세한 내용은 MSDN page을 참조하십시오. 이미지를 웹 프로젝트의 ClientBin 폴더에 넣고 대신 상대 경로를 사용해야합니다.
다른 방법으로 이미지를 어셈블리로 리소스로 컴파일하고 거기에서로드 할 수도 있습니다. WriteableBitmapEx에는이 작업을 좀 더 쉽게하기위한 확장 방법이 있습니다. 그러나 어셈블리 크기가 커지고 초기 XAP로드 시간이 증가한다는 점을 명심하십시오.
// Load an image from the calling Assembly's resources only by passing the relative path
var writeableBmp = new WriteableBitmap(0, 0).FromResource("example.png");
웹 파일 또는 리소스 스트림에서 PNG 이미지로 WriteableBitmap을 채우시겠습니까? –
WriteableBitmap을 채우기 위해 사용하려는 웹 페이지에 PNG가 있습니다. 어떻게 신경 쓰지 않습니다. 하지만 이미지를 수정해야합니다 (픽셀 수준에서 PNG의 8 비트는 더 쉽게 만들었을 것입니다). 리소스 스트림을 사용하는 것이 더 낫습니까? – david
방금 답변을 편집했습니다. –