Przytnij obraz za pomocą przeciąganego boxu zdjęć o stałym rozmiarze

Pracuję nad projektem winforms, który obejmuje przycinanie obrazu. Moim celem jest użycie kontrolki Picturebox o stałym rozmiarze, która pozwala użytkownikowi wybrać obszar, który chce zachować.

Mój problem polega na tym, że przycinam obraz; to"Prace", ale obszar kadrowania trochę się zmienia. Oto rezultat, który otrzymuję:

Aby wyjaśnić, nie mówię o powiększaniu, to jest na projekt. Zauważ, że pomarańczowe pole skupia się głównie na oku burzy, ale przycięty obraz nie jest.

To jest mój kod dla operacji zbioru:

private void tsbRecortar_Click(object sender, EventArgs e)
{
    Rectangle recorte = new Rectangle(pbxSeleccion.Location.X, pbxSeleccion.Location.Y, pbxSeleccion.Width, pbxSeleccion.Height);

    foto = recortarImagen(foto, recorte);
    pbxImagen.Image = foto;
}

private Image recortarImagen(Image imagen, Rectangle recuadro)
{
    try
    {
        Bitmap bitmap = new Bitmap(imagen);
        Bitmap cropedBitmap = bitmap.Clone(recuadro, bitmap.PixelFormat);

        return (Image)(cropedBitmap);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Error");

        return null;
    }
}

pbxSeleccion jest przeciągalnym pomarańczowym prostokątem; jego rodzicem jestpbxImage (Powracam do niego po załadowaniu formularza).

Jak widzisz, używam współrzędnychpbxSeleccion aby zdefiniować punkt początkowy obszaru kadrowania, ale nie działa zgodnie z oczekiwaniami ... czasami otrzymuję wyjątek „Brak pamięci”.

Myślę, że ma to związek z tym, jak obraz jest ładowany w nadrzędnym boxie obrazkowym, czymś, w jaki sposób margines jest obsługiwany „pod maską”, ale nic, co próbowałem, nie naprawia ... zmienia wielkość przesunięcia.

Przeszukiwanie sieci i SO bardzo mi pomogło, ale w tym konkretnym przypadku nie mogę znaleźć odpowiedzi ... proszę, nie krępuj się wskazać ulepszenia mojego kodu, nie kodowałem długo i Jestem nowy w C # i .NET

Każda pomoc jest bardzo ceniona. Twoje zdrowie!

questionAnswers(2)

yourAnswerToTheQuestion