Page 1 sur 1
Librairie d'icônes
Publié : jeu. 12/févr./2009 19:54
par Anonyme2
Je travaille sur un librairie de gestion d'icônes depuis plus de six mois (Microsoft et pas linux).
J'ai écrit des fonctions de conversion entre les formats ico, icl, dll, exe, cpl et ocx (fichier 16 et 32 bits).
La librairie supporte le format XP et le format Vista compressé.
J'aimerais savoir ce que vous voudriez comme fonctions, sachant que j'ai déjà écrit les fonctions :
- de comptage des icônes/groupes d'icônes des différents types
- d'énumération pour les fichiers 16 bits, fonctions pratiquement identiques à celles de Microsoft pour les 32 bits
- de tests de type de fichier (format NE/PE/ICO)
- d'extraction automatique de tous les icônes y compris Vista (que l'on peut décompresser aussi en fichier).
Je dois dire aussi que les règles des fichiers icl étant pratiquement absentes, il existe des fichiers icl que certains éditeurs n'ouvrent pas, voire pas correctement, certains éditeurs plantent lorsque les noms de groupes sont trop longs; tout ça m'a amené à fixer mes règles de conversions pour que cela soit fonctionnel avec beaucoup d'éditeurs.
Voilà, vous pouvez me soumettre vos idées
A+
Publié : jeu. 12/févr./2009 20:04
par Backup
Ce qui manque a purebasic c'est un
createimage_ico() !!
avec stardrawing qui respecte la Transparence
etc....

Publié : jeu. 12/févr./2009 20:11
par Le Soldat Inconnu
le plus utile, pour moi, c'est une fonction qui permet d'extraire une icône de la taille de son choix d'un fichier *.ico *.exe ou *.dll
en gros de dire je veux l'icone de taille 16*16 du fichier Machin.ico
ca répcupère le format d'icone XP ou inférieur en fonction de l'os
ou alors de pouvoir préciser tout, taille et format
16*16 256 couleurs
32*32 XP
48*48 16 couleurs
etc ...
moi, c'est ça que j'utilise
Publié : jeu. 12/févr./2009 20:34
par Anonyme2
Dobro a écrit :Ce qui manque a purebasic c'est un
createimage_ico() !!
avec stardrawing qui respecte la Transparence
etc....

Tu préciseras ta pensée car il y a transparence te transparence.
Avant XP, un pixel était transparent ou non (le masque de l'icône défini cette transparence) et depuis XP, ça existe encore mais il y a la couche alpha qui défini une transparence partielle, en fait c'est plus un effet de mélange.
je pense que tu parles de la transparence due au masque, je vais regarder ce que je peux faire.
Publié : jeu. 12/févr./2009 20:39
par Anonyme2
Le Soldat Inconnu a écrit :le plus utile, pour moi, c'est une fonction qui permet d'extraire une icône de la taille de son choix d'un fichier *.ico *.exe ou *.dll
en gros de dire je veux l'icone de taille 16*16 du fichier Machin.ico
ca répcupère le format d'icone XP ou inférieur en fonction de l'os
ou alors de pouvoir préciser tout, taille et format
16*16 256 couleurs
32*32 XP
48*48 16 couleurs
etc ...
moi, c'est ça que j'utilise
Ca c'est pas trop dur sauf que de nombreux fichiers comportent des icônes de même nature comme 16x16 256 couleurs etc.
Le problème est de différencier.
Les format exe, dll, icl, ocx, cpl ont des identifiants numérique et/ou alphanumériques pour les groupes et les icônes (les icônes sont classés par groupe), les icl peuvent en plus avoir (mais ce n'est pas obligatoire) des noms pour les groupes.
Le format ico n'a rien de tout ça. Il existe un standard ico Microsoft mais il existe aussi de nombreux fichiers ico qui ne sont pas à ce standard et qui sont parfaitement bon au point de vue du format.
Publié : jeu. 12/févr./2009 21:00
par Le Soldat Inconnu
En priorité, pour le codeur, ce qui l'intéresse, c'est la taille de l'image.
J'aime bien tel icône, j'ai besoin pour mon bouton de l'icone en 24*24 (format chiant impossible a choper par l'api windows) ou de mon icône perso qui fait 128*24
Publié : jeu. 12/févr./2009 22:34
par Backup
Denis a écrit :Dobro a écrit :Ce qui manque a purebasic c'est un
createimage_ico() !!
avec stardrawing qui respecte la Transparence
etc....

Tu préciseras ta pensée car il y a transparence te transparence.
la doc dit :
Resultat = CreateImage(#Image, Largeur, Hauteur [, Profondeur])
Description
Crée une nouvelle image vide qui peut être utilisée par les fonctions 2DDrawing comme surface de dessin. Si 'Resultat' = 0, la fonction a échoué.
en fait c'est faux !!
ça cree pas une image vide !!
ça créé une image noir !!
dans certain soft de dessin, il est possible de creer une image nouvelle
qui n'as pas de fond !! elle sont d'ailleurs souvent représentés par des petit carreaux, pour indiqué qu'elles sont transparente des leur création !!
ensuite tous se qu'on dessine dessus , permet de faire le dessin
du coup si tu colle une icone ou un PNG avec transparence,dans un "createimage" via stardrawing_stopdrawing
ben la couleur "transparente" est transformé en noir !!
c'est pourquoi cette question s'adresse surement plus a fred qu'a toi, mais bon
j'ai du mal avec l'anglais
