2013-10-07 2 views
1

실버 라이트로 응용 프로그램을 작성했습니다. 이미지에 직사각형을 배치하고 직사각형으로 덮여있는 이미지의 일부를 선택하고 버튼 클릭시 이미지 컨트롤에 표시하려고합니다.writeablebitmap을 사용하여 사각형에서 이미지 선택

나는 비율과 이미지 조작을 잘 처리하지 못하므로 올바른 방법으로 얻을 수 없습니다.

누구나 내가 이것을 해결할 수있는 방법이나 해결책을 제시 할 수 있다면, 다음과 같은 코드가 유용 할 것입니다. 이 코드가 실행됩니다 때마다

public void CaptureImage(object sender, RoutedEventArgs e) 
{ 
      BitmapImage bitmapImage = new BitmapImage(); 
      //// bitmapImage.CreateOptions = BitmapCreateOptions.None; 
      bitmapImage = NewImage; 

      ////calculate bounding box 
      int originalWidth = bitmapImage.PixelWidth; 
      int originalHeight = bitmapImage.PixelHeight; 

      int newSmallWidth = (int)SquareBlue.Width; 
      int newSmallHeight = (int)SquareBlue.Height; 

      ////generate temporary control to render image 
      Image temporaryImage = new Image { Source = bitmapImage, Width = newSmallWidth, Height = newSmallHeight }; 

      ////create writeablebitmap 
      WriteableBitmap wb = new WriteableBitmap(newSmallWidth, newSmallHeight); 

      TranslateTransform t = new TranslateTransform(); 
      t.X = -5; 
      t.Y = -5; 

      wb.Render(temporaryImage, t); 

      wb.Invalidate(); 

      myImage.Source = wb; 
    } 

는 전체 이미지 대신 사각형으로 선택한 부분의, 스냅됩니다. 누구든지 내가 여기서 잘못하고있는 것으로 안내 할 수 있을까?

답변

0

WriteableBitmapEx library에서 제공하는 자르기 방법을 사용하는 것이 좋습니다.

+0

좌표를 올바르게 입력하지 못했습니다. – DotNetGeek

+1

필자는 문제에 대해 생각하고 샘플 값을 사용하기 위해 펜과 종이를 사용할 것을 권장합니다. 문제를 생각해보십시오. –

관련 문제