Accueil > Forum > > > > Redimensionner image en gardant les proportions
Redimensionner image en gardant les proportions
dimanche 31 août 2008 à 22:45:29 |
Redimensionner image en gardant les proportions

Tuizi
|
Bonjour, Quelle fonction faut-il utiliser pour reproduire le redimensionnement façon "Zoom" d'une picturebox? Je travail avec des Bitmap et Graphics bien évidement, et je n'ai pas d'IHM pour pouvoir utiliser une picturebox. Merci d'avance Tuizi
|
|
lundi 1 septembre 2008 à 01:09:43 |
Re : Redimensionner image en gardant les proportions

xmox667
|
Réponse acceptée !
Salut, J'ai un composant PictureBox qui redimensionne l'image en gardant les proportions. Voici le code brut c# il faudra que tu l'adapte :
//fonction principale private void ComputeSizeAndInitialPosition() { ComputeImageSize(); ComputeInitialPosition(); }
//membres privés mLeft : X de l'image dans la picturebox mTop: Y de l'image dans la picturebox
private void ComputeInitialPosition() { try { if (mCenterImage == false) mLeft = mTop = 0; else { mLeft = (Width - mImageSize.Width) / 2; mTop = (Height - mImageSize.Height) / 2; } } catch (Exception) { mLeft = 0; mTop = 0; } }
private void ComputeImageSize() { if (Image != null) mImageSize = ComputeSize(Image.Size,new Size(mMaxBmpWidth,mMaxBmpHeight)); else mImageSize = Size.Empty; }
public Size ComputeSize(Size source, Size max) { Size ImageSize = Size.Empty;
if (source.Width >= source.Height) { float h = ((float)source.Height / (float)source.Width) * max.Width; ImageSize = new Size(max.Width, (int)h); if (ImageSize.Height > max.Height) { float w = ((float)source.Width / (float)source.Height) * max.Height; ImageSize = new Size((int)w, max.Height); } }
if (source.Width < source.Height) { float w = ((float)source.Width / (float)source.Height) * max.Height; ImageSize = new Size((int)w, max.Height); if (ImageSize.Width > max.Width) { float h = ((float)source.Height / (float)source.Width) * max.Width; ImageSize = new Size(max.Width, (int)h); } } return ImageSize; }
A+
|
|
lundi 1 septembre 2008 à 09:36:37 |
Re : Redimensionner image en gardant les proportions

leprov
|
cest vraiment se faire ch**r pour rien! crée une image ou tu veux récupérer le nouvelle taille, récupère le graphics de la première image, le graphics de la seconde, puis dessine le graphics de la première dans le graphics de la seconde avec la méthode DrawImage, en spécifiant bien la taille de la zone ou dessiner (donc la taille que tu veux pour ta nouvelle image). ca prendra moins de code, moins de prise de tete, etc
|
|
lundi 1 septembre 2008 à 13:56:55 |
Re : Redimensionner image en gardant les proportions

Tuizi
|
Oui mais, leprov, le principe c'est de garder les proportions lors du redimensionnement!
Tuizi
|
|
lundi 1 septembre 2008 à 15:12:57 |
Re : Redimensionner image en gardant les proportions

leprov
|
et? si tu veux une image a 70% de sa taille tu as juste a faire
img2 = new Bitmap(img1.Width*70/100, img1.Width*70/100)
ou est le problème?
|
|
lundi 1 septembre 2008 à 22:19:31 |
Re : Redimensionner image en gardant les proportions

Tuizi
|
Non c'est pas aussi simple! En faite admettons j'ai une image de 900 * 500 et moi le max c'est 800*600. Donc il faut que je redimensionne en 800 * 400 pour garder la proportion. La propriété Zoom d'une picture box le fait très bien, moi je veux juste reproduire cette fonction ou l'utiliser si ça existe. Je vais voir avec ce que ma donné xmox667Tuizi
|
|
lundi 1 septembre 2008 à 22:51:54 |
Re : Redimensionner image en gardant les proportions

leprov
|
Réponse acceptée !
mouais, tas juste a faire un bête test... float WidthPercent = (float)900/800; float heightPercent = (float)500/600;
int newWidth; int newHeight; if (WidthPercent < HeigthPercent) { newWidth = OldWidth*WidthPercent; newHeight = OldHeight*WidthPercent; } else { newWidth = OldWidth*HeigthPercent; newHeight = OldHeight*HeigthPercent; }
Maintenant tu draw d'un graphics à l'autre. C'est ca que fais la picturebox, et entre le code que je viens de donner et celui pour copier d'un graphics a un autre, tu en as pour quoi....20 lignes de codes en plus (autrement plus simples et compréhensibles que l'autre solution)
|
|
Cette discussion est classée dans : image, utiliser, gardant, redimensionner, proportions
Répondre à ce message
Sujets en rapport avec ce message
Capture d'une image via un webcam, sans utiliser TWAIN [ par Naze ]
Hello!Est-ce que quelqu'un connait une méthode SIMPLE (en c#) pour capturer une image via une webcam (du style Video for Windows)? j'ai déjà trouvé pa
[c#] Redimensionner une image à l'aide de la souris [ par Ninounette ]
Bonjour à tous! Le titre n'est peut-être pas très parlant mais je vous explique: je dispose d'un panel dans lequel se trouve une picturebox. Dans cel
Redimensionner une image sur un contrôle [ par MasterShadows ]
Bonsoir à tous et à toutes,Je voudrais redimensionner une image que j'applique sur un bouton, sachant que l'image n'est pas en backgroundParce que en
redimensionner une image [ par lilippx ]
salut a tous, je cherche a redimensionner automatiquement une image à la taille de mon picturebox, mon image est JPEG merci de votre aide
redimensionner une image selon la taille de la forme [ par brunhoff ]
bonjour dans un programme je charge une image que je mets comme arrière plan this.BackgroundImage=Image.FromFile(openFileDialog1.FileName); le prob
Image + Sprite [ par nounours21_6 ]
Bonjour tout le monde,je dévoloppe un jeu 2D, un labyrinthe, en C# .NET2 sous visual studio 2005et je dois faire l'animation du petit bonhomme avec un
Utiliser VLC en C# [ par goffle ]
Bonjour, Voila j'aimerais réaliser une application en C# utilisant VLC. Le but est de récupérer sur un PC l'image en temps réel de la webcam et de l
Tableau d'image [ par lapucedu88 ]
Bonjour a tous,Je cherche comment utiliser un tableau d'image. Je precise ma question : J'ai créée un tableau d'image de cette facon : pictureBox []
Copier coller d'une image [ par thebigboss ]
Salut,voici une question un peu copliquer:comment peut-on copier/coller une image à partir d'une application vers une autre?En fait, je souhaite pouvo
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|