Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2921 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#.NET] Extraire une image d'une image en fonction d'un rectangle ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C#.NET] Extraire une image d'une image en fonction d'un rectangle ?

n°1448216
ParadoX
Posté le 27-09-2006 à 14:55:16  profilanswer
 

Bonjour,
 
Comment puis-je, à partir d'un fichier image, creer une autre image à partir d'un rectangle de selection tracé sur la 1ere image et défini par des coordonnées ?
 
Autrement dit, jai une image sur laquelle je définis un rectangle de selection. Maintenant, je voudrais faire un screenshot de ce rectangle et le sauvegarder dans un fichier à part.  
 
Qqun a une piste ?
 
 :jap:


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
mood
Publicité
Posté le 27-09-2006 à 14:55:16  profilanswer
 

n°1448227
arnaudm57
Posté le 27-09-2006 à 15:09:35  profilanswer
 

J'avais fait ça, il fut un temps :
 

Code :
  1. //Création de la nouvelle image (x et y représente les dimensions)
  2. Bitmap texture = new Bitmap(x, y);
  3. //Utilisation d'un objet Graphics ... donc de GDI+
  4. Graphics g = Graphics.FromImage(texture);
  5. //Dimension et positionnement de ton rectangle de sélection dans ton image Source  
  6. Rectangle srcRect = new Rectangle(0, 0, x, y);
  7. //Dimension et positionnement dans la nouvelle image
  8. Rectangle destRect = new Rectangle(0, 0, x, y);
  9. //Dessin de l'image avec les ... représentant l'image Bitmap source
  10. g.DrawImage(..., destRect, srcRect, GraphicsUnit.Pixel);


 
Tu remarqueras que j'ai mis des 0 pour les rectangles, tu pourras changer cela à ta guise
 
En espérant que cela puisse t'inspirer
 
++


Message édité par arnaudm57 le 27-09-2006 à 15:11:01
n°1448308
ParadoX
Posté le 27-09-2006 à 16:39:36  profilanswer
 

Merci, je vais tenter :)


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1450664
ParadoX
Posté le 02-10-2006 à 10:55:47  profilanswer
 

Hm je n'y arrive pas :/
 
L'ennui, c'est que je veux extraire un rectangle d'un bitmap avec des coordonnées précises (en Cm, malheureusement !), et faire afficher cet extrait de facon agrandie dans un viewerPanel.
 
J'ai ceci pour le moment, ca marche, mais ca m'affiche l'image entiere (avec le bon ratio) dans le viewerPanel:
 

Code :
  1. private void GenerateThumbnail(string path, int selectedPage)
  2.         {
  3.             //int dpi = 72;
  4.             using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read))
  5.             {
  6.                 byte[] buffer = new byte[file.Length];
  7.                 file.Read(buffer, 0, buffer.Length);
  8.                 document = new Document(new BinaryReader(new MemoryStream(buffer)));
  9.             }
  10.             Page page = document.Pages[selectedPage];
  11.             bitmap = new Bitmap(
  12.                (int)(page.Width),
  13.                (int)(page.Height));
  14.             Graphics graphics = Graphics.FromImage(bitmap);
  15.             page.Draw(graphics);
  16.         }


 
Puis:
 

Code :
  1. private void viewerPanel_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
  2.         {
  3.             e.Graphics.Clear(Color.White);
  4.             if (null != bitmap)
  5.             {
  6.                 float ratio = (float)bitmap.Width / (float)bitmap.Height;
  7.                 float displayWidth, displayHeight;
  8.                 if (ratio * viewerPanel.Height > viewerPanel.Width)
  9.                 {
  10.                     displayWidth = viewerPanel.Width - 10;
  11.                     displayHeight = displayWidth / ratio;
  12.                 }
  13.                 else
  14.                 {
  15.                     displayHeight = viewerPanel.Height - 10;
  16.                     displayWidth = displayHeight * ratio;
  17.                 }
  18.                 float x = (viewerPanel.Width - displayWidth) / 2;
  19.                 float y = (viewerPanel.Height - displayHeight) / 2;
  20.                 System.Drawing.Rectangle rect = new System.Drawing.Rectangle(10, 10, 150, 100);
  21.                 e.Graphics.DrawImage(bitmap, x, y, displayWidth, displayHeight);
  22.                 e.Graphics.DrawRectangle(new Pen(Color.Gray), x, y, displayWidth, displayHeight);
  23.             }
  24.         }


 
J'aimerais, dans mon rectangle Rect, faire afficher un rectanlg extrait du BMP. :/


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1451053
arnaudm57
Posté le 02-10-2006 à 19:52:09  profilanswer
 

Je suppose que rect représente les coordonnées et dimensions de l'image que tu veux extraire de bitmap ?

n°1451061
ParadoX
Posté le 02-10-2006 à 20:11:28  profilanswer
 

C'était un test, pour voir si j'arrivais à ne faire afficher qu'une partie de mon image.
Le but de l'operation étant d'avoir une lettre en .PDF, de le transformer en image, et d'extraire la partie "Adresse" de la lettre (en haut à droite, par la, j'ai les coordonnées en centimetres du rectangle), et de faire afficher la partie extraite dans un viewerPanel.
 
Les problemes (:D):
 
- L'extraction du rectangle
- Le ratio
- L'angrandissement de la partie extraite.
 
Je suis débutant [:spamafote]
 
Merci pour ton PM, mais c'est le meme code que tas posté en premier, je ne suis pas arrivé à le faire marcher comme je veux :/
 


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#.NET] Extraire une image d'une image en fonction d'un rectangle ?

 

Sujets relatifs
Fonction get avec if[VB6] Probleme avec la fonction inet1.getchunk(1024)
[C#.NET] Focer une fenetre en arriere plan à venir devant ?[ASP.NET] Textbox - Propose valeur durant la frappe ?
Expoter un fichier SWF en un fichier image[Resolu][C#NET] Mettre le focus sur un onglet (pour le faire afficher)
probleme avec la fonction ftp_putFonction membre en paramètre
simple image dans un tableau et pourtant ...[PHP] adapter un script en une fonction
Plus de sujets relatifs à : [C#.NET] Extraire une image d'une image en fonction d'un rectangle ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR