begin process at 2012 02 11 10:36:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Multimédia

 > 

Image et Vidéo

 > 

Faire un assemblage d'images


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

Faire un assemblage d'images

lundi 2 octobre 2006 à 20:38:36 | Faire un assemblage d'images

Siteauludo


Bonjour,

J'aimerai faire, en fait, une sorte de logiciel qui remplace une chaîne de caractères par une "chaîne d'images", soit une suite d'images.

par exemple, la chaîne de caractères :
abeoc

deviendrait :
[img1][img2][img3][img4][img5]

Pour cela je pourrais utiliser un richtextbox, mais, bien sûr, il y a un détail :

Je dois pouvoir décaler individuellement les images vers le haut ou le bas.

Par exemple, faire en sorte que [img2] soit 2 pixels plus haut que [img1], et que [img3] soit 2.3 pixels plus bas que [img2], etc...

Une idée d'un contrôle qui ferait ça ?

Au pire, je peux toujours mettre des tas de imageBox (je suis plus sûr du nom, le contrôle qui affiche une image), et faire un screen du tout, mais se serait incroyablement gourmand en ressource (mes chaînes de caractères pouvant être très longues...)

Un idée géniale ?

Merci d'avance, Siteauludo
lundi 2 octobre 2006 à 20:40:10 | Re : Faire un assemblage d'images

Siteauludo

Précision :

"Au pire, je peux toujours mettre des tas de imageBox "

ça veut dire que je pourrait faire une form spéciale qui ferait que de me générer des imageBox (!), une pour chaque image, et me les places individuellement sur elle-même (sur la form donc).

mardi 3 octobre 2006 à 10:02:01 | Re : Faire un assemblage d'images

Lutinore

Administrateur CodeS-SourceS
Réponse acceptée !

Salut, je ne suis pas sûr de bien visualiser ce que tu veux..  Plutôt que d'utiliser plusieurs PictureBox créer une classe "Sprite" par exemple, qui contient l'image et sa position et dessine directement sur la forme ou le contrôle.


public struct Sprite
{
    private Bitmap bmp;
    private Color mask;
    private Rectangle bounds;

    public Rectangle Bounds { get { return bounds; } }

    public Sprite( Bitmap bmp, Rectangle bounds )
    {
        this.bmp = bmp;
        this.bounds = bounds;
        this.mask = bmp.GetPixel( 0, 0 );
    }

    public void Draw( Graphics g )
    {
        if ( bmp != null )
            g.DrawImage( bmp, bounds );
    }

    public bool Hit( int x, int y )
    {
        if ( bounds.Contains( x, y ) )
        {
            x = x - bounds.X;
            y = y - bounds.Y;
           
            if ( bmp.GetPixel( x, y ) != mask )
                return true;
        }
       
        return false;
    }
}

mardi 3 octobre 2006 à 17:44:25 | Re : Faire un assemblage d'images

Siteauludo

Merci, ceci me sera fort pratique

Si j'ai bien compris, ça me placera une image bmp dans ma forme.

Par contre je ne comprends pas super bien le deuxième paramètres :

public Sprite( Bitmap bmp, Rectangle bounds )

C'est quoi ce Rectangle bounds ?

Merci
mardi 3 octobre 2006 à 17:49:48 | Re : Faire un assemblage d'images

Siteauludo

Edit: dans ma form
mercredi 4 octobre 2006 à 07:24:15 | Re : Faire un assemblage d'images

Lutinore

Administrateur CodeS-SourceS
Réponse acceptée !

Bounds contient la position du sprite en coordonnées client de la forme ainsi que ça taille, ça permet de dessiner le sprite et aussi de passer la position de la souris à la methode Hit pour savoir si la souris se trouve sur le sprite tout en tenant compte d'une couleur invisible via la variable mask ( un fond vert par exemple ).

Un exemple pour utiliser cette structure :

public sealed class MainForm : Form
{
    private List< Sprite > sprites = new List< Sprite >( );

    public MainForm( ) : base( )
    {
        this.SetStyle
        (
            ControlStyles.UserPaint |
            ControlStyles.DoubleBuffer |
            ControlStyles.AllPaintingInWmPaint,
            true
        );
       
        sprites.Add( new Sprite( new Bitmap( "image1.bmp" ), new Rectangle( 0, 0, 64, 64 ) ) );
        sprites.Add( new Sprite( new Bitmap( "image2.bmp" ), new Rectangle( 100, 100, 64, 64 ) ) );
    }

    protected override void OnMouseDown( MouseEventArgs e )
    {
        //base.OnMouseDown( e );

        if ( e.Button == MouseButtons.Left )
        {
            foreach( Sprite s in sprites )
            {
                if ( s.Hit( e.X, e.Y ) )
                    MessageBox.Show( "Hit !" );
            }
        }
    }

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

        Graphics g = e.Graphics;

        foreach( Sprite s in sprites )
            s.Draw( g );
    }

    [ STAThread ]
    private static void Main( )
    {
        Application.EnableVisualStyles( );
        Application.Run( new MainForm( ) );
    }
}

mercredi 4 octobre 2006 à 14:43:06 | Re : Faire un assemblage d'images

Siteauludo

Merci beaucoup !


Cette discussion est classée dans : images, caractères, chaîne, assemblage, img2


Répondre à ce message

Sujets en rapport avec ce message

Insertion dans un fichier texte [ par 4rocky4 ] Bonjour tout le monde,Dans mon fichier, je voudrai ajouter une chaîne de caractères juste après une chaîne recherchée.Exemple :aaaaaaaabbbbbbbje voudr Reconnaissance d'image [ par Gendal67 ] Bonsoir à tous, Dans le cadre d'un développement, je suis confronté à un problème que je peine à résoudre. Puisse un expérimenté se pencher sur mon c Publication site asp.net [ par abaudouin84 ] Bonjour,Une petite question sur la publication d'un site asp.net sous Visual Studio 2008Dans mon projet, j'ai un répertoire \Images dans lequel j'ai u [WPF] Mettre des images dans un treeview [ par Spixy ] Bonjour à tous !Voilà, en créant ma propre classe de ImageTreeViewItem qui hérite de TreeViewItem, j'ai réussi à faire que chaque "branche" de mon arb Gestion d'image [ par CBR900rry ] Bonjour,Je suis occupé de coder un logiciel de gestion sportive.Dans ce logiciel, il y a un partie explicative avec un grand nombre d'image..Lors du t annotation des images en c# [ par baby85 ] salut,j'ai besoin d'annoter des icones se trouvant sur une image, ses annotations doivent inclure la position de l'icone(x,y)ainsi que d'autres inform des images défilantes sur SQL SERVER avec C# [ par isims101 ] Salut ,Je veux insérer dans un site web un bloc contenant des images défilantes issus d'une base de données SQL SERVER,pouvez -vous m'aidez ?Merci d'a Byte to string avec des caractères de 2 octets [ par damien123456789 ] Bonjour,J'ai un pb lors d'une conversion d'un tableau de bytes en string.Le tableau de bytes représente une chaine de caractères dans un fichier prove Fonction pour compter le nombre de caractere d'une string [ par babaOrhumette ] Salut,Je suis à la recherche d'une fonction (la plus simple possible) permettant de compter le nombre de caractères contenu dans un(e) string. Et si p imprimer plusieurs images sur une seule page [ par Spank76 ] Bonjour, Dans mon programme, je crée plusieurs images bitmap stockées dans des pictureBox.J'arrive à les imprimer en en mettant une par page mais j'ai


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,733 sec (3)

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