IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Découpage d'un fichier images contenant plusieurs icones


Sujet :

Windows Presentation Foundation

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2014
    Messages : 84
    Points : 143
    Points
    143
    Par défaut Découpage d'un fichier images contenant plusieurs icones
    Bonjour,

    Je désire utiliser un image contenant plusieurs icônes comme le fichier en pièce jointe mais je ne trouve pas la technique malgré mes recherches.
    J'imagine que je dois déclarer une objet qui correspond aux coordonnées et que je pourrais utiliser comme une image pas moyen de tomber sur un exemple.

    Est ce que quelqu'un peut me mettre sur une piste pour gérer ce type d'image svp?

    Merci d'avance pour votre aide.

    Ersch
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Tu peux imaginer ce que tu veux mais c'est contre-productif !
    Un bon moteur de recherche en utilisant le terme suivant t'offrira davantage de solutions que ton imagination : cropping image c#

    A+

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2014
    Messages : 84
    Points : 143
    Points
    143
    Par défaut
    Je te remercie. J'ai cherché pendant une demi journée sinon je n'aurai pas posté ici...enfin bon je serai plus prudent avec le terme "j'imagine" et je me contenterai de ma question la prochaine fois

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Aider n'est pas le problème mais je considère que si tu ne proposes aucune ébauche c'est que tu n'as pas vraiment tout essayer.

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    surement ce projet :

    https://www.codeproject.com/articles...ipulation-in-c

    Si tu avais une feuille de papier avec ces images, tu ferais quoi : tu prendrais des ciseaux pour obtenir chaque image...

    A partir de là, soit t'as compris le truc soit on ne peut rien pour toi !
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2014
    Messages : 84
    Points : 143
    Points
    143
    Par défaut
    Bonjour et merci pour ton lien.

    j'avoue que je suis un peu surpris par vos réponses, je pensais être sur un forum d'entraide, bref.

    Pour répondre à wallace1, j'ai testé des solutions avant "d'oser" poser une question avec notamment cette solution que j'ai trouvé sur stackoverflow:

    https://stackoverflow.com/questions/...dex-in-c-sharp

    La question correspondait à ce que je cherche à faire:

    I want to use the 4th image from the ico file : C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\VS2008ImageLibrary\1033\VS2008ImageLibrary\VS2008ImageLibrary\Objects\ico_format\WinVista\Hard_Drive.ico

    If I see this icon using Windows Photo Viewer, shows me 13 different icons.

    I have dumped this ico in a resource file, how can I retreive the required icon using index.

    Dans cette solution, une personne proposait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Stream iconStream = new FileStream ( @"C:\yourfilename.ico", FileMode.Open );
    IconBitmapDecoder decoder = new IconBitmapDecoder ( 
            iconStream, 
            BitmapCreateOptions.PreservePixelFormat, 
            BitmapCacheOption.None );
     
    // loop through images inside the file
    foreach ( var item in decoder.Frames )
    {
      //Do whatever you want to do with the single images inside the file
      this.panel.Children.Add ( new Image () { Source = item } );
    }
     
    // or just get exactly the 4th image:
    var frame = decoder.Frames[3];
     
    // save file as PNG
    BitmapEncoder encoder = new PngBitmapEncoder();
    encoder.Frames.Add(frame);
    using ( Stream saveStream = new FileStream ( @"C:\target.png", FileMode.Create ))
    {
      encoder.Save( saveStream );
    }

    Voila, je ne pensais pas devoir faire une liste des pistes que j'ai exploré avant mais ceci en était une.

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par Ersch Voir le message
    j'avoue que je suis un peu surpris par vos réponses, je pensais être sur un forum d'entraide, bref.
    pas du tout malheureux ! ici on est là pour emmerder les noobs
    (un peu étonné aussi)

    tu as l'air d'être sur wpf (c'est toujours bien de préciser la techno, car faire un truc diffère d'une techno à l'autre, encore plus si c'est "graphique")
    (et si c'est le cas ca aurait été mieux de poster dans la partie wpf)

    je ne crois pas l'avoir déjà fait en wpf, mais en windows forms, on créé une image de la taille d'une petite image
    puis on dessine dessus le morceaux qu'on veux (défini par un rectangle) à partir de la grande image
    (et donc on répète ca pour chaque morceau, avec le rectangle qui change de y)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2014
    Messages : 84
    Points : 143
    Points
    143
    Par défaut
    Voici ce que j'ai pour le moment, ce n'est pas uniquement en xaml.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            <Grid HorizontalAlignment="Left"
                  Height="320"
                  Width="320"
                  Margin="123.797,55.801,0,0"
                  VerticalAlignment="Top"
                  RenderTransformOrigin="0.5,0.5"
                  x:Name="OthelloGrid"
                  Background="#FF1A1A59"
                  ShowGridLines="True">
     
     
     
            </Grid>
    Dance la partie C#

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
       public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                Grid mainGrid = new Grid();
                mainGrid.ShowGridLines = true;
                OthelloGrid.Children.Add(mainGrid);
                Board board = new Board();
                board.initBoard(8);
     
                var myBorder = new Border();
     
                for (int i = 0; i < 8; i++)
                {
                    mainGrid.RowDefinitions.Add(new RowDefinition());
                    mainGrid.ColumnDefinitions.Add(new ColumnDefinition());
                }
     
                TextBlock txt = new TextBlock();
                txt.Text = "UN";
                txt.FontSize = 30;
                TextBlock txt2 = new TextBlock();
                txt2.FontSize = 30;
                txt2.Text = "DEUX";
                mainGrid.Children.Add(txt);
                mainGrid.Children.Add(myBorder);
                Grid.SetColumn(txt, 0);
                Grid.SetRow(txt, 0);
                Grid.SetColumn(myBorder, 0);
                Grid.SetRow(myBorder, 0);
                mainGrid.Children.Add(txt2);
                Grid.SetColumn(txt2, 1);
                Grid.SetRow(txt2, 0);
                mainGrid.Children.Add(myPic);
     
            }
     
        }
    Rien d'extraordinaire ici, j'ai juste la case 1 et 2 de mon Grid ou j'ajoute le texte UN et DEUX.
    Ce que je veux faire c'est insérer des icônes dans des emplacements du grid et faire le "découpage" de l'image afin de mettre ces icônes dans le grid à partir de la partie C#.

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    c'est toi qui t'impose d'avoir l'image en un seul fichier et de la découper à l'exécution ?
    (parce que si c'est le cas, c'est totalement inutile)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2014
    Messages : 84
    Points : 143
    Points
    143
    Par défaut
    Je t'avoue que je me braque un peu parce car ce n'est pas la première fois que je tombe sur ce format et que je voudrais bien pouvoir le gérer.
    J'arrive à mettre mes images dans mon grid si je la découpe via un autre moyen. Je me pose également la question sur l’intérêt de grouper les icônes en un fichier (A part une facilité pour le graphiste qui va créer un seul fichier)

    Merci

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    y a des gens dans le web qui font ça, pour gagner x aller retour réseau (demander un fichier au lieu de x)
    ca doit leur faire gagner quelques pouillèmes (bien que toutes les requêtes GET doivent être simultanément lancées de nos jours)

    mais sur un .exe c'est totalement inutile, tu ne gagneras rien en performance (les fichiers sont dans l'exe sur le disque local, et un fichier de 10ko avec un disque qui va à 150Mo/s ...)
    (et le graphiste il va perdre 2 secondes il est pas à ca près, et encore)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Ca se fait beaucoup aussi pour les jeux videos pour des raisons de performance aussi j'imagine. Sauf que ca doit etre vrai pour des jeux avec enormement de ressources. Pour un Othello ca changera absolument rien .
    Sinon cherches du coté de sprite sheet.
    ici en silverlight (le code doit marcher en wpf):
    http://taylorza.blogspot.ca/2009/08/...ment-with.html

  13. #13
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2014
    Messages : 84
    Points : 143
    Points
    143
    Par défaut
    Merci pour vos réponses

  14. #14
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2014
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 196
    Points : 331
    Points
    331
    Par défaut
    y a des gens dans le web qui font ça, pour gagner x aller retour réseau (demander un fichier au lieu de x)
    ca doit leur faire gagner quelques pouillèmes (bien que toutes les requêtes GET doivent être simultanément lancées de nos jours)
    Oui sa ça fait, surtout en web mais à la livraison pas en développement , avec un script de build. On appelle cela "Image spriting", et oui ça ne fait gagner que des pouillèmes.
    Mais des pouillèmes de milliers d'images pour des milliers d'utilisateur sa fait des millions de pouillèmes tu rajoute par là-dessus une bande passante d'un hébergeur mutualisé et au final ....

    En revanche pour une application Desktop en WPF je ne voie pas vraiment l'intérêt (sauf peut-être si la ressources est sur un réseau ou que le format est imposé).

    Dans tous les cas deux options :

    - Afficher l'image avec une taille et des offset X et Y pour cibler le Sprite dans la SpriteSheet, la même source d'image (le SpriteSheet) est utilisée à chaque fois. (C'est ce qui se passe avec du Css en Web pour de l'Image spriting)
    - Découper la SpriteSheet en Sprite, au démarrage, ou, mieux, quand l'on en a besoin et uniquement si ce n'est pas déjà fait. Tu copie les bytes de la partie du SpriteSheet où se trouve le Sprite dans une autre image de la taille du Sprite.

  15. #15
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    Le format d'image d'un fichier .ico est un format spécial qui peut contenir plusieurs images d'icones (comme le format .gif)

    Si tu veux décoder un fichier .ico original qui contient plusieurs icones et le mettre dans ton Grid voici 2 exemples codes qui décodent -
    -le fichier "s3.5_Disk_Drive.ico" extrait du dossier D:\VSImageLibrary\VS2010ImageLibrary\Objects\ico_format\WinVista .
    Ce fichier contient 10 icones ...

    1/exemple 1: le fichier est place dans le Dossier Images du projet
    - sa prop Action de Génération = Contenu

    code xaml du form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <Window x:Class="WpIcon.Window1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="Window1" Height="300" Width="300">
        <Grid 
            x:Name="mainGrid"
            HorizontalAlignment="Left"
            Height="320"
            Width="320"
            Margin="123.797,55.801,0,0"
            VerticalAlignment="Top"
            RenderTransformOrigin="0.5,0.5"
     
            Background="#FF1A1A59"
            ShowGridLines="True">
     
        </Grid>
    </Window>
    code behind .cs du form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
     
     public partial class Window1 : Window
        {
           private int countRow = 0;
           private int countCol = 0;
           private string pathFile = Directory.GetCurrentDirectory() + "/Images/3.5_Disk_Drive.ico"; 
            public Window1()
            {
                InitializeComponent();
     
                mainGrid.ShowGridLines = true;
     
     
     
                for (int i = 0; i < 8 ; i++)
                {
                    mainGrid.RowDefinitions.Add(new RowDefinition());
                    mainGrid.ColumnDefinitions.Add(new ColumnDefinition());
                }
     
     
     
                TextBlock tb1 = new TextBlock();
                tb1.Text = "UN";
                tb1.FontSize = 30;
                tb1.Foreground = Brushes.Yellow;
                mainGrid.Children.Add(tb1);
                Grid.SetColumn(tb1, 0);
                Grid.SetRow(tb1, 0);
     
                TextBlock tb2 = new TextBlock();
                tb2.FontSize = 30;
                tb2.Text = "DEUX";
                tb2.Foreground = Brushes.Yellow;
                mainGrid.Children.Add(tb2);
                Grid.SetColumn(tb2, 1);
                Grid.SetRow(tb2, 0);
     
               countCol = 1;
               countRow = 0;
     
     
     
     
                AddIcons();
            }
     
            private void AddIcons()
            {
                Stream iconStream = new FileStream(pathFile, FileMode.Open);
                IconBitmapDecoder decoder = new IconBitmapDecoder(
                        iconStream,
                        BitmapCreateOptions.PreservePixelFormat,
                        BitmapCacheOption.None);
     
                // loop 
                Console.WriteLine(decoder.Frames.Count.ToString());
                countCol++;
                foreach (var item in decoder.Frames)
                {
                    //add image control
                    Image pic = new Image() { Source = item };
                    pic.Margin = new Thickness(5.0);
                    this.mainGrid.Children.Add(pic);
     
                    Grid.SetColumn(pic, countCol);
                    Grid.SetRow(pic, countRow);
                    countCol++;
                    if (countCol == 8)
                    {
                        countCol = 0;
                        countRow++;
                    }
                    if (countRow == 7) break;
     
                }
     
                // or just get exactly the 4th image:
                var frame = decoder.Frames[3];
            }
         }
    Exemple 2: le fichier est ajoute directment au dossier racine du projet projet
    - sa prop Action de Génération = Ressource incorporée

    code xaml du form (identique):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    <Window x:Class="WpIcon.Window2"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="Window2" Height="300" Width="300">
        <Grid 
            x:Name="OthelloGrid"
            HorizontalAlignment="Left"
            Height="320"
            Width="320"
            Margin="123.797,55.801,0,0"
            VerticalAlignment="Top"
            RenderTransformOrigin="0.5,0.5"
     
            Background="#FF1A1A59"
            ShowGridLines="True">
     
        </Grid>
    </Window>
    code behind .cs du form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
     
    public partial class Window2 : Window
        {
     
            private int countRow = 0;
            private int countCol = 0;
            private string pathFile = "WpIcon.3.5_Disk_Drive.ico";
            public Window2()
            {
                InitializeComponent();
                OthelloGrid.ShowGridLines = true;
     
                for (int i = 0; i < 8; i++)
                {
                    OthelloGrid.RowDefinitions.Add(new RowDefinition());
                    OthelloGrid.ColumnDefinitions.Add(new ColumnDefinition());
                }
     
     
     
                TextBlock tb1 = new TextBlock();
                tb1.Text = "UN";
                tb1.FontSize = 30;
                tb1.Foreground = Brushes.Yellow;
                OthelloGrid.Children.Add(tb1);
                Grid.SetColumn(tb1, 0);
                Grid.SetRow(tb1, 0);
     
                TextBlock tb2 = new TextBlock();
                tb2.FontSize = 30;
                tb2.Text = "DEUX";
                tb2.Foreground = Brushes.Yellow;
                OthelloGrid.Children.Add(tb2);
                Grid.SetColumn(tb2, 1);
                Grid.SetRow(tb2, 0);
     
                countCol = 1;
                countRow = 0;
     
     
     
     
                AddIconsFromResources();
            }
            private void AddIconsFromResources()
            {
                Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly();
                Stream iconStream = myAssembly.GetManifestResourceStream(pathFile );
     
                IconBitmapDecoder decoder = new IconBitmapDecoder(
                        iconStream,
                        BitmapCreateOptions.PreservePixelFormat,
                        BitmapCacheOption.None);
     
                // loop 
     
                countCol++;
                foreach (var item in decoder.Frames)
                {
                    //Do whatever you want to do with the single images inside the file
                    Image pic = new Image() { Source = item };
                    pic.Margin = new Thickness(5.0);
                    this.OthelloGrid .Children.Add(pic);
     
                    Grid.SetColumn(pic, countCol);
                    Grid.SetRow(pic, countRow);
                    countCol++;
                    if (countCol == 8)
                    {
                        countCol = 0;
                        countRow++;
                    }
                    if (countRow == 7) break;
     
                }
            }
        }
    NB: il n'existe pas de class faisant l'inverse savoir un IconBitmapEncoder Maintenant rien ne t'empêche de créer ton propre fichier de "MULTI" miniatures au Format Bitmap ou PNG en lui ajoutant des frames avec l'encodeur BitmapDecoder ou PngBitmapEncoder....
    bon code...

Discussions similaires

  1. Découpage d'un fichier texte en plusieurs parties
    Par adrien.forbat dans le forum Général Java
    Réponses: 5
    Dernier message: 31/08/2014, 13h03
  2. Réponses: 9
    Dernier message: 07/06/2012, 14h37
  3. Fractionner un fichier image en plusieurs autres fichiers
    Par ProgElecT dans le forum Vos téléchargements VB6
    Réponses: 0
    Dernier message: 04/12/2010, 14h03
  4. Découpages d'une image contenant plusieurs objets sur un fond uni
    Par PerlPicker dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 04/01/2010, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo