bonjour,
savez vous comment faire pour recuperer les icones enregistrees dans shell32.dll, j'ai beau chercher sur google, mais je ne trouve pas grand chose?
avez vous une idee?
Merci
bonjour,
savez vous comment faire pour recuperer les icones enregistrees dans shell32.dll, j'ai beau chercher sur google, mais je ne trouve pas grand chose?
avez vous une idee?
Merci
ca dépend de ce que tu veux faire, regarde dans la faq http://c.developpez.com/faq/vc/?page...etIconFromFile
en fait je voudrais generer des icones multi frame (deja j'ai un probleme avec cela avec VS2005), mais je suis arriver a generer des bmp multiframe)
et je veux prendre de shell32.dll les icones des repertoires de differentes taille, car dans le repertoire windows je n'ai trouve que l'icone 16*16
je vais voir le code que tu m'as envoie nico
Merci
Tu veux générer ces icônes par un programme, ou les dessiner toi-même, par exemple avec l'éditeur de ressources des VS 2005 non-express ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
en fait je voudrais les generer automatiquement, car il y'en a plein, et ce que j'ai c'est des Tiff, voila le code que j'ai reussi a obtenir pour l'instant, mais j'ai un outil pour creer des icones apartir de Bmp, mais il n'arrive pas a ouvrir les fichier que j'ai genere avec VS
mais pour les icones je ne trouve pas comment faire cela avec .Net 2.0 GDI+
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 private void createIcons_Click(object sender, EventArgs e) { string[] Files; InputFolder = "D:\\XXXX"; // get the Tif files in the Input Directory Files = Directory.GetFileSystemEntries(InputFolder, "*.tif"); int FileCount = Files.GetUpperBound(0) + 1; if ((FileCount % 2) != 0) return; int NumberOfFrames = FileCount / 2; Array.Sort(Files); Bitmap[] Images = new Bitmap[NumberOfFrames]; System.Drawing.Icon FolderIcon = new Icon(InputFolder + "\\folder.ico"); // a remplacer int[] Sizes = new int[5] { 16, 24, 32, 48, 96 }; for (int i = 0; i < NumberOfFrames; i++) { Bitmap bmp1 = new Bitmap(Files[i * 2]); Bitmap bmp2 = new Bitmap(Files[i * 2 + 1]); Bitmap folderbmp = FolderIcon.ToBitmap(); Bitmap folderbmp1 = new Bitmap(folderbmp, Sizes[i], Sizes[i]); Images[i] = MergeTwoImage(bmp1, bmp2, folderbmp1); Images[i].Save("D:\\Icone1_"+Sizes[i]+".bmp"); /// pour tester les images une a une, mais Gif viewer n'arrive pas a les ouvrir } ToMultiPageImage(Images, "c:\\final.bmp"); } // private void ToMultiPageImage(Image[] pages, string fileName) { Bitmap image = new Bitmap(pages[0]); FileStream stream = new FileStream(fileName, FileMode.OpenOrCreate); // Get an encoder for saving with System.Drawing.Imaging.Encoder enc = new System.Drawing.Imaging.Encoder(System.Drawing.Imaging.Encoder.SaveFlag.Guid); //Obtain the TIFF codec info. ImageCodecInfo info = GetCodec("image/tiff");// la si je met image/bmp il crache //Create a parameter list. This needs 1 parameter in it. EncoderParameters ep = new EncoderParameters(1); //Place the MultiFrame encoder value in the parameter list ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame); //Save the first frame using the encoder and parameters image.Save(stream, info, ep); //Change the encoder value in the list to FrameDimensionPage ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage); //Use first of the master frame's overloaded SaveAdd methods to add subsequent images. Repeat this step for as many images as you want to add. for (int i = 1; i < pages.Length; i++) image.SaveAdd(pages[i], ep); //Use the second of the master frames overloaded SaveAdd methods to flush, save and close the image. ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush); image.SaveAdd(ep); stream.Close(); }
et pour le shell 32 je voudrai remplacer ces deux instructions
vous voyez un peu le probleme?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 System.Drawing.Icon FolderIcon = new Icon(InputFolder + "\\folder.ico"); // a remplacer //genre zoom Bitmap folderbmp1 = new Bitmap(folderbmp, Sizes[i], Sizes[i]);
Merci
et j'ai trouve un autre truc VS ne conserve pas les Alpha channel quand il convertit du format tiff en bmp
je crois qu'il faut que je code cela from scratch
C'est du C#, ça, non ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
oui c du C# mais je me suis dis j'ai plus de chance de trouver des references en C++, et je creerai un projet en C++ :-)Envoyé par Médinoc
Partager