2012-11-05 12 views
-4

Je veux faire un recadrage d'image. J'ai vu le lien suivant.recadrage d'image C#

Image cropping

Mais ce que je veux faire est la suivante. Je souhaite rogner la dimension de calcul d'image à partir de son centre. Donc, par exemple, si mon image est de 100 px et que je recadre, je veux que le résultat soit de 50 px. Je veux laisser 25 px chacun à gauche et à droite et faire la largeur de 50 px.

Est-ce que quelqu'un l'a déjà fait?

+0

WPF, WinForms, etc ??? + Qu'avez-vous essayé ??? – MoonKnight

+5

-1 Je viens de vérifier l'article de blog que vous avez lié à et votre travail est déjà fait pour vous là-bas. En plus de ce qui est écrit ici, je ne sais pas ce que vous demandez. –

+3

Oui, certainement les gens l'ont déjà fait. Maintenant, que diriez-vous de nous montrer [ce que vous avez essayé] (http://whathaveyoutried.com), expliquer où vous êtes coincé et afficher le code pertinent? – Oded

Répondre

1

Cela devrait être simple.

Supposons que vous avez width et height (de l'image source), et vous avez besoin de votre sortie en cropped_width et cropped_height.

Pour commencer, nous devons calculer le centre de l'image source:

int x_center=width/2; 
int y_center=height/2; 

Ensuite, nous savons que nous avons besoin de l'image de sortie pour être de taille définie, nous prenons donc la moitié de la taille à la gauche droite:

int x_source=x_center-cropped_width/2; 
int y_source=y_center-cropped_height/2; 

et enfin, vous avez votre rectangle pour la culture:

Rect r = new Rect(x_source, y_source, cropped_width, cropped_height); 

utiliser certains forme de DrawImage() pour copier ce rectangle à l'endroit dont vous avez besoin.