1

I´m making an app in Windows Phone 8.1 Visual Studio 2013 (not Windows Phone Store app, just Windows Phone app) wich do panoramic from 2 images. I have almost finished my aplication. But in the end when I want to crop the result, I cannot send the properly point from a rectangule drew over the image.

private void btnCrop_Click(object sender, EventArgs e){
            // Get the size of the source image captured by the camera 
            double originalImageWidth = wbPanoramica.PixelWidth;
            double originalImageHeight = wbPanoramica.PixelHeight;

            // Get the size of the image when it is displayed on the phone 
            double displayedWidth = VisorPicture.ActualWidth;
            double displayedHeight = VisorPicture.ActualHeight;

            // Calculate the ratio of the original image to the displayed image 
            double widthRatio = originalImageWidth / displayedWidth;
            double heightRatio = originalImageHeight / displayedHeight;

            // Calculate the offset of the cropped image. This is the distance, in pixels, to the top left corner 
            // of the cropping rectangle, multiplied by the image size ratio. 
            int xoffset = (int)(((p1.X < p2.X) ? p1.X : p2.X) * widthRatio);
            int yoffset = (int)(((p1.Y < p2.Y) ? p1.Y : p2.X) * heightRatio);
            int X1 = (int)(p1.X * widthRatio);
            int Y1 = (int)(p1.Y * heightRatio);



            var cropped = wbPanoramica.Crop(X1, Y1, yoffset, xoffset);

            wbPanoramica = cropped;
            // Set the source of the image control to the new cropped bitmap
            VisorPicture.Source = wbPanoramica;
            rect.Visibility = Visibility.Collapsed;


            //Enable  accept and reject buttons to save or discard current cropped image.
            //Disable crop button until a new cropping region is selected.
            btnAceptar.IsEnabled = true;
            btnReject.IsEnabled = true;
            btnCortar.IsEnabled = false;

            //Instructional text
            textStatus.Text = "Continue editando la imagen, acepte, o rechace el cambio";
        }
Gavin
  • 5,629
  • 7
  • 44
  • 86
Candyvf
  • 11
  • 2

1 Answers1

0

I got your problem. Its like you are not getting the exact pixels while you are cropping Right ? I too had the similar issue . What I did was

wbPanoramica.Height=wbPanoramica.Height/2;
wbPanoramica.Width=wbPanoramica.Width/2;

While passing crop pixels , pass it like this

var cropped = wbPanoramica.Crop(X1*2, Y1*2, yoffset, xoffset);

Let me know if this helps

Apoorv
  • 2,023
  • 1
  • 19
  • 42