begin process at 2012 02 10 22:01:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Multimédia

 > 

Image et Vidéo

 > 

rotation d'image. probleme avec graphics


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

rotation d'image. probleme avec graphics

mardi 29 avril 2008 à 14:47:04 | rotation d'image. probleme avec graphics

Vincent

Bonjour à tous,

mon objectif est de pouvoir "cadrer" une image provenant d'un scan. Celle ci serait un peu penchée et ne serait pas conforme pour un traitement futur. Afin de cadrer l'image chargée dans un picturebox, j'aimerais que l'utilisateur puisse cliquer sur deux points apparaissant sur l'image définissant la diagonale. A partir de ces deux points, le programme doit pouvoir faire pivoter l'image afin de la cadrer.


Pour faire pivoter l'image, j'ai créé cette classe qui utilise la méthode rotationflip de graphics, malheureusement le traitement semble sans effet chez moi.
Ici  p1 et p2  représentent les points sur  lesquelles l'utilisateur aurait  cliqué, et nouveaup1 et nouveaup2 sont la nouvelle position souhaitée de ces points. La méthode pour calculer l'angle de rotation est basée sur les produits scalaires et le problème ne vient à priori pas d'elle mais plutôt du fait que je ne sais pas bien manipuler les graphics.
Le soucis principal est que le bitmap renvoyé est le même que Image passée dans le constructeur, sans qu'un rotation ne semble avoir été effectuée.

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;

namespace ImageRotation
{
    public class ImageRotation
    {
        private Bitmap image;
        private Point p1;
        private Point p2;
        private Point nouveaup1;
        private Point nouveaup2;
        int nouvelleLargeur;
        int nouvelleHauteur;

        public ImageRotation(Bitmap image, Point p1, Point p2, Point nouveaup1, Point nouveaup2, int nouvelleLargeur, int nouvelleHauteur)
        {

            this.image = image;
            this.p1 = p1;
            this.p1 = p2;
            this.nouveaup1 = nouveaup1;
            this.nouveaup2 = nouveaup2;
            this.nouvelleHauteur = nouvelleHauteur;
            this.nouvelleLargeur = nouvelleLargeur;
        }

        public Image traitement()
        {
            Graphics g = Graphics.FromImage(image);
            Point v1 = new Point(p2.X - p1.X, p2.Y - p1.Y);
            Point v2 = new Point(nouveaup2.X - nouveaup1.X, nouveaup2.Y - nouveaup1.Y);

            double cosAngle = (v1.X * v2.X + v1.Y * v2.Y)  / ((Math.Sqrt(v1.X * v1.X + v1.Y * v1.Y) *  (Math.Sqrt(v2.X * v2.X + v2.Y * v2.Y))));
            System.Windows.Forms.MessageBox.Show("cosangle" + cosAngle.ToString());
            double angle = Math.Acos(cosAngle)* (180/Math.PI) ;
            System.Windows.Forms.MessageBox.Show("angle" + angle.ToString());
            g.RotateTransform((float)angle);
            System.Windows.Forms.MessageBox.Show("j'ai soit disant tourné");
            return new Bitmap(1000, 1000, g);
        }
    }
}



D'avance, merci pour votre aide.


Cette discussion est classée dans : system, image, p1, nouveaup1, nouveaup2


Répondre à ce message

Sujets en rapport avec ce message

Utilisation System.Resources [ par jeanajaccio ] Bonjour à tous,J'ai besoin d'un petit coup de main :J'ai créé un méthode qui génére dynamiquement une picture box mais je voudrais que l'image change Ajouter dynamiquement des composants graphiques [ par Sebulba ] Bonjourj'ai un thread qui doit créer un élément graphique sur la form pour pouvoir se représenter.mon problème est que je n'arrive pas à afficher une System.OutOfMemoryException Image [ par crookah ] Bonjour, je me demande pk j'ai une System.OutOfMemoryException lors du chargement d'une image . private System.Drawing.Image imageEnCour; imageEnCour System.Drawing.Graphic ... refresh ? [ par dinytro ] Bonjour,je souhaite faire une horloge dans une frm qui contient déjà des infoJ'ai donc mis un panel et un pictureBox dedans avec pour ce dernier l'ima Faire une galerie d'image qui soit sélectionnable mais sans connaitre le nombre d image [ par zarmin ] Bonjour à tous! Je dois faire un programme qui permet de sélectionner plusieurs images. Les images doivent être disposées les une à coté des autres m Insertion de texte dans une image BMP (8bites par pixel) [ par Hammings ] Bonjour, En voulant insérer du texte dans une image bmp, je me retrouve confronter à un dilem. mon image à la base elle du format bmp ( 8 bits par pix Utilisation du ResourceManager [ par lagoelle ] Bonjour,J'ai un petit soucis avec les fichiers resx. Le but est d'afficher le drapeau de la langue utilisée.J'ai tapé ceci:        private void cmbPre plantage du prog [ par shinevilkyo ] lu all,j ai code un explorateur win en csharp eilmarche super sur le dd ou sur tt disque logique mais kan le contenue est trop gros a afficher ds une convertion "d'image" [ par myweb2004 ] Bonjours a tous !Je cherche comment faire pour convertir une image de type system.drawing.image en system.drawing.bitmap en memoire. Ou alors comment Modifier périodiquement (25 fps) l'image dans une pictureBox [ par fcolo ] Bonjour,Je travaille actuellement sur des caméra AXIS qui fournissent un flux mjpg.J'arrive à récupérer chaque fichier JPEG de ce flux et les ecrirent


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales