Image, new form et non o pictureBox ! [Résolu]

MickParadiseLost 86 Messages postés samedi 26 février 2005Date d'inscription 2 avril 2008 Dernière intervention - 13 mai 2005 à 23:56 - Dernière réponse : MickParadiseLost 86 Messages postés samedi 26 février 2005Date d'inscription 2 avril 2008 Dernière intervention
- 14 mai 2005 à 13:29
Salut a tous !

comment faire pour ouvrir une image dans une new form windows sans passer par la pictureBox

Comme je débute, soyez cool en expliquant clairement lol.

Merci beaucoup.

@+
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 14 mai 2005 à 12:26
3
Merci
Je vais t'expliquer ;)



// On instancie un objet bitmap

Bitmap bmp = new Bitmap("tonImage.jpg");



//On override la méthode OnPaint, méthode qui est appelée a chaque rafraichissement d'un control (Form ou autre)

protected override void OnPaint(PaintEventArgs e)

{

// On récupere l'objet Graphic du control

Graphics g = e.Graphics

// On dessine l'image bmp via l'objet Graphics aux coord 0;0

g.DrawImage(bmp, 0, 0);

}



Et c'est tout !

Apres tu peux t'amuser avec d'autres fonctions de l'objet Graphics, comme DrawLine(), etc.

N'hésite pas a poser d'autres questions !


Mx

Merci MorpionMx 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de MorpionMx
Meilleure réponse
MickParadiseLost 86 Messages postés samedi 26 février 2005Date d'inscription 2 avril 2008 Dernière intervention - 14 mai 2005 à 12:45
3
Merci
Voila mon code:



//form2

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using System.IO;



namespace Programme_principal

{

/// <summary>

/// Description résumée de Form2.

/// </summary>

public class Form2 : System.Windows.Forms.Form



{

/// <summary>

/// Variable nécessaire au concepteur.

/// </summary>

private System.ComponentModel.Container components = null;



public Form2(string FileName)

{

// Requis pour la prise en charge du Concepteur Windows Forms



{



Bitmap bmp = new Bitmap(FileName);

WindowState = FormWindowState.Normal;

AutoScrollMinSize = bmp.Size;

ClientSize = bmp.Size;

Invalidate(false);





}

}





/// <summary>

/// Nettoyage des ressources utilisées.

/// </summary>

protected override void Dispose( bool disposing )

{

if( disposing )

{

if(components != null)

{

components.Dispose();

}

}

base.Dispose( disposing );

}

protected override void OnPaint(PaintEventArgs e)

{

// On récupere l'objet Graphic du control

Graphics g = e.Graphics;


// On dessine l'image bmp via l'objet Graphics aux
coord 0;0

g.DrawImage(bmp, 0, 0);

}



----------------------------------------------------------------------------

----------------------------------------------------------------------------

Donc, j'ai fait comme tu m'as dit MX mais il ya un probleme
d'execution. dans l'avant derniere ligne du code il me souligne "bmp"
et dit que le nom bmp n'existe pas dans la classe ni dans l'espace de
nom 'Programme_principal.Form2'.

Pourquoi?

Merci MickParadiseLost 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de MickParadiseLost
Meilleure réponse
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 14 mai 2005 à 12:51
3
Merci
Sors ta déclaration Bitmap bmp du constructeur, sinon aucune autre méthode ne pourra y accéder



private Bitmap bmp;

public Form2(string FileName)

{

bmp = new Bitmap(FileName);

WindowState = FormWindowState.Normal;

AutoScrollMinSize = bmp.Size;

ClientSize = bmp.Size;

}





Mx

Merci MorpionMx 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de MorpionMx
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 14 mai 2005 à 06:50
0
Merci
pourquoi ne veux-tu pas passer par un picturebox ?

sinon tu peux faire ça :

using (Form f = new Form()) {
f.BackgroundImage = tonImage;
f.ClientSize = tonImage.Size;

f.ShowDialog();
}

Sébastien FERRAND

Blog :
http://blogs.developpeur.org/sebmafate</FO< body>
Commenter la réponse de sebmafate
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 14 mai 2005 à 08:20
0
Merci
Ou bien si tu veux controler totalement l'affichage tu redefinis dans ta forme la methode OnPaint :

protected override void OnPaint( PaintEventArgs args )
{
//base.OnPaint( args );

Graphics g = args.Graphics;

try
{
g.DrawImage( myBitmap, this.ClientRectangle );
}
catch
{
// ...
}
}
Commenter la réponse de Lutinore
MickParadiseLost 86 Messages postés samedi 26 février 2005Date d'inscription 2 avril 2008 Dernière intervention - 14 mai 2005 à 10:29
0
Merci
Slt!
Je veux pas utiliser une picturebox car les images qui safiche dans cette new form doivent etre modifiable (redimention, noir et blanc, filtre divers, rognage, correction des yeu rouges ...) et que le probleme de la picturebox est que lorsqu'on travail sur une image de taille importante, elle est plus longue a se recharger lorsqu'on la modif.


Moi j'utilise le code:
Bitmap bmp = new Bitmap();

mais aprés je sais pas quoi écrire.
Merci pour votre aide
Commenter la réponse de MickParadiseLost
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 14 mai 2005 à 10:35
0
Merci
Tu peux regarder ici pour avoir des exemples de traitements d'images en mode managé

http://www.csharpfr.com/code.aspx?ID=28945


Et ici pour d'excellentes sources en mode non managé (donc bien plus rapide)

http://www.csharpfr.com/listeauteur2.aspx?ID=417596


Mx
Commenter la réponse de MorpionMx
MickParadiseLost 86 Messages postés samedi 26 février 2005Date d'inscription 2 avril 2008 Dernière intervention - 14 mai 2005 à 10:51
0
Merci
lol merci Morpion Mx mais je suis encore loin de faire des effets sur
images parsque je n'arrive deja pas a afficher une image lol.

Disons que ça me servira un peu plus loin dans mon projet !

Quelqu'un sait comment faire alors avec le bitmap = new bitmap()
sachant que l'image ne s'affiche pas dans le formulaire principal,
préciser dans quel formulaire je doi mettre le code.

Merci bcp. bon we
Commenter la réponse de MickParadiseLost
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 14 mai 2005 à 12:00
0
Merci
Je te renvoies au code de Lutinore un peu plus haut, tu met ce code dans la form que tu souhaites


Mx
Commenter la réponse de MorpionMx
MickParadiseLost 86 Messages postés samedi 26 février 2005Date d'inscription 2 avril 2008 Dernière intervention - 14 mai 2005 à 12:12
0
Merci
Oui je veux bien mais le myBitmap, c'est une variable, je la remplace
par quoi? je la met ou? (lol sa doit se voir legerement ke je débute en
csharp). si la reponse est: "tu la remplace par le nom de variable de
ton image.", moi je demande:"comment je fais pour savoir le nom de mon
image?"
Commenter la réponse de MickParadiseLost
MickParadiseLost 86 Messages postés samedi 26 février 2005Date d'inscription 2 avril 2008 Dernière intervention - 14 mai 2005 à 13:24
0
Merci
excellent ça marche impéc.

Merci beaucoup MX
Commenter la réponse de MickParadiseLost
MickParadiseLost 86 Messages postés samedi 26 février 2005Date d'inscription 2 avril 2008 Dernière intervention - 14 mai 2005 à 13:29
0
Merci
euh je viens de me rendre compte d'un autre probleme. Lorsque l'image
est grande, des scrollbars se mettent. quand je deplace les ascenseur
limage ne safich pu corectement. je fé comment?
Commenter la réponse de MickParadiseLost

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.