Maison > Article > interface Web > Plugin Photoshop pour lire et écrire des fichiers d'icônes ICO
Il s'agit d'un plug-in de format de fichier que j'ai écrit pour Photoshop, IcoFormat, qui est utilisé pour lire et écrire des fichiers d'icônes Windows (extensions ICO, CUR). Le plug-in PS pour le format de fichier icône a été écrit par un étranger il y a de nombreuses années, mais le plug-in que je propose a désormais de meilleures fonctions et il y a suffisamment de raisons pour remplacer le plug-in fourni par l'étranger.
Je ne me souviens pas très clairement des caractéristiques du plug-in de l'étranger. La comparaison est probablement la suivante en fonction de la mémoire :
(1) Le fichier ICO ne peut pas être affiché lorsque celui de l'étranger. Le plug-in est sélectionné dans la boîte de dialogue de fichier. C'est peut-être parce qu'il y a un problème avec l'écriture de ses ressources PiPL. Mon plugin n'a pas ce problème.
(2) Le plug-in Foreigner ne peut pas prévisualiser lors de l'ouverture d'un fichier contenant plusieurs images, mais je fournis une image d'aperçu sur la boîte de dialogue, ce qui est plus convivial.
(3) Le plug-in de Foreigner ne gère pas très bien la partie transparente de l'icône (en mémoire), mais avec mon plug-in, vous pouvez très bien définir la partie transparente.
(4) Le plug-in étranger ne peut pas enregistrer les icônes anti-aliasées multi-images du système XP, mais mon plug-in peut enregistrer les icônes anti-aliasées et générer automatiquement des images d'autres qualités et standards tailles (je pense que c’est la raison la plus importante pour remplacer les plug-ins étrangers).
(5) L'algorithme octree est utilisé lors du déclassement de l'image. La qualité de l'image déclassée est meilleure que la méthode utilisée par un logiciel tel que IconWorkshop.
(6) Mon plug-in est compatible avec les scripts (c'est-à-dire que les paramètres du plug-in seront stockés dans le système de script PS) et les paramètres de l'utilisateur peuvent être mémorisés pendant l'exécution.
(7) Mon plug-in peut ouvrir et enregistrer des fichiers de curseur (CUR), mais les plug-ins étrangers ne semblent pas pouvoir le faire. Et je pourrai peut-être continuer à développer d'autres fonctions telles que l'importation d'icônes à partir de fichiers PE à l'avenir.
Ce qui suit est une brève explication et introduction à ce plug-in. Ce plug-in dispose d'un total de 4 boîtes de dialogue, à savoir la boîte de dialogue À propos, la boîte de dialogue de sélection d'image (lors de l'ouverture d'un fichier), la boîte de dialogue de paramétrage de la partie transparente et la boîte de dialogue de paramétrage des options d'enregistrement d'image. Je vais les montrer un par un ci-dessous.
(1) Boîte de dialogue de sélection d'image
Lorsqu'une icône contenant plusieurs images est ouverte, une boîte de dialogue de sélection d'image apparaîtra :
>
Le but principal ici est de demander à l'utilisateur de sélectionner une image à ouvrir à partir du fichier. "Ajouter AND MASK ou Alhpa en tant que canal indépendant" signifie que s'il s'agit d'une icône inférieure à 32 BPP, AND MASK ( noir et blanc Bitmap bicolore, blanc signifie transparent) est ajouté au nouveau canal dans PS. S'il s'agit d'une icône 32 BPP, le canal Alpha sera ajouté en tant que nouveau canal dans PS. "S'il faut afficher la grille en damier" concerne l'aperçu de l'image dans la boîte de dialogue. Si cette case est cochée, la fonction de rappel dans PS est en fait appelée pour le dessin, sinon elle est dessinée via la fonction GDI de WIN32. (2) Boîte de dialogue de sélection de la qualité d'image Lors de l'enregistrement d'un fichier, différentes boîtes de dialogue apparaîtront en fonction du mode d'image. Si le mode d'image actuel est le mode RVB, la boîte de dialogue suivante apparaîtra, demandant à l'utilisateur de définir quelle icône de qualité enregistrer. Si vous sélectionnez l'icône anti-aliasé, j'ajouterai automatiquement des images d'autres tailles et qualités de couleur au fichier (le fichier final peut contenir 3 à 12 images, selon la taille du fichier et la taille d'image standard) Déterminé par le relation), les icônes anti-aliasées générées par ce plug-in sont entièrement générées en référence aux exigences de MSDN pour les icônes utilisées dans les systèmes XP, de sorte que les icônes anti-aliasées générées par ce plug-in peuvent être directement importées dans le projet d'application Windows de VS à utiliser. Concernant les icônes anti-aliasées, vous pouvez vous référer à mon article précédent. Les options de mode d'étirement suivantes ne sont valables que pour les icônes anti-aliasées de 32 BPP, car ici, seulement 32 BPP impliquent la nécessité de réduire l'image. La soi-disant suppression de pixels signifie que lorsque les pixels se chevauchent, seul un certain pixel de l'image sera pris. L'interpolation linéaire fait référence à la réalisation d'une interpolation linéaire entre quatre pixels de l'image source. En principe, la suppression de pixels nécessite moins d'opérations que l'interpolation linéaire, et la qualité de mise à l'échelle de l'interpolation linéaire peut être meilleure, mais en pratique, il est difficile de ressentir une grande différence. Si 16 BPP est sélectionné, l'image enregistrée est une image de distribution X-5-5-5. L'algorithme de dégradation d'image utilisé lors de la sélection d'images 4 BPP ou 8 BPP est l'algorithme octree (que j'ai présenté dans un article précédent). Étant donné que l'algorithme octree peut muter l'image en une seule couleur lorsque le nombre de couleurs est petit, je n'ai pas proposé d'option pour enregistrer en tant qu'image monochrome (le BPP minimum est de 4). L'image ci-dessous montre l'effet de qualité d'image après la rétrogradation et l'enregistrement d'une icône :
Avec ce plug-in, vous pouvez facilement convertir des images PNG en icônes anti-aliasées. La méthode est la suivante : ouvrez l’image PNG dans PS, puis enregistrez-la en tant que fichier ICO.
(3) Boîte de dialogue de réglage ET MASQUE
Lors de l'enregistrement du fichier, si l'image est en mode index, l'utilisateur doit définir la partie transparente (ET partie MASQUE). L'option par défaut consiste à utiliser les informations de transparence directement à partir du document PS lui-même, mais cette boîte de dialogue vous permet également de choisir d'autres méthodes pour définir les informations de transparence.
Il existe de nombreux paramètres ici. Vous pouvez utiliser la liste déroulante pour basculer, et différentes interfaces de saisie peuvent être fournies ci-dessous. Vous pouvez définir la couleur transparente sur le noir, le blanc, le premier plan, l'arrière-plan, la couleur d'un certain point d'échantillonnage, une couleur RVB spécifiée ou le canal alpha (blanc signifie transparent), ou spécifier un index dans la table des couleurs.
(4) Boîte de dialogue À propos de
Vous pouvez la voir dans le menu PS : Aide-À propos du plug-in-ICO..., cette boîte de dialogue C'est également soigneusement conçu et écrit par moi, et c'est assez beau. Lorsque vous déplacez la souris dans cette boîte de dialogue, vous pouvez voir le retour de l'URL de mon blog à la souris. Vous pouvez cliquer sur l'URL pour appeler le navigateur par défaut pour ouvrir l'URL. Ceci est réalisé grâce à la suite CallBack fournie par PS, que j'ai présentée dans mon précédent tutoriel sur la façon d'écrire des filtres PS.
(5) Autres instructions :
Ce plug-in est basé sur mes recherches sur certains blogs récemment publiés à partir du visionneuse de format de fichier image, à AlphaBlend et aux icônes anti-aliasées, à l'algorithme octree de génération d'images indexées, le but de la publication de ces articles est de préparer la technologie de ce plug-in. Développer ce plug-in nécessite beaucoup d'efforts, notamment l'étude des formats de fichiers ICO, du SDK PS, etc. Les matériaux référencés (tels que l'algorithme octree) ont été introduits dans des articles de blog précédents et sont omis ici.
5.1 Si la résolution X, Y n'est pas précisée dans le fichier, je garderai la valeur par défaut de PS en PS : 72 pixels/pouces.
5.2 Si l'image indexée est ouverte, vous pouvez voir la table des couleurs actuelle dans le menu : Image-Mode-Table des couleurs. Étant donné que certains logiciels (tels que AcdSee) ne peuvent pas analyser correctement la table des couleurs en images avec le nombre réel de couleurs, lorsque j'enregistre le fichier, la table des couleurs est toujours définie sur 16 ou 256, et non sur le nombre réel de couleurs.
5.3 Ce plug-in est particulièrement adapté aux utilisateurs suivants. Je vous recommanderai fortement d'installer ce plug-in aux personnes suivantes :
Utilisateurs expérimentés PS, concepteurs d'icônes Windows, programmeurs. qui aiment participer eux-mêmes à la conception de l'interface utilisateur, ingénieurs et autres techniciens (des gens comme moi).
Ce plug-in permet aux utilisateurs d'utiliser pleinement les puissantes capacités de traitement d'image de Photoshop et n'est plus limité par les capacités d'édition limitées des IDE tels que VC et VS.NET, afin que vous puissiez créer de plus belles images à l'aide des icônes Photoshop, vous pouvez bien sûr également convertir facilement de nombreux documents PNG sur Internet en icônes utilisées dans le programme.
J'espère sincèrement que davantage de gens l'aimeront et l'utiliseront. Si vous avez des commentaires, des suggestions ou des besoins, n'hésitez pas à laisser un message sur mon blog, ou à envoyer un email sur ma boîte mail (l'adresse de la boîte mail est sur le babillard à gauche).
(6) Enfin, le lien de téléchargement du package de version du plug-in :
http://files.cnblogs.com/hoodlum1980/PsPlugIns_V2013.zip
(7) Méthode d'installation :
Copiez le fichier "IcoFormat.8BI" dans le répertoire de plug-in de format de fichier de Photoshop ①, tel que C:Program FilesAdobePhotoshop CS plug- au format de fichier, redémarrez simplement PS. Vérifiez s'il y a le menu suivant dans le menu PS : "Aide-À propos du plug-in-ICO...", cela signifie que le plug-in est installé avec succès.
(8) Mettre à jour l'enregistrement (niveau de BUG : H : extrêmement important ; M : moyen ; L : sans importance) :
8,1 M : Enregistrer en tant que qualité inférieure à 32 BPP à cette fois-là, la logique de réglage de ANDMASK a été ajustée (tous les canaux alpha inférieurs à 255 sont définis sur transparent) pour éviter d'afficher des ombres dures. 2010-12-17.
8.2 H : Correction du bug selon lequel lors de l'enregistrement de l'icône anti-aliasée 32BPP et de la sélection de l'interpolation linéaire, le canal Alpha utilise également l'interpolation linéaire (la méthode correcte est que le canal Alpha est toujours généré en supprimant des pixels). Ce bug fait que lors de la génération d'images d'autres tailles, les pixels qui ne devraient pas être transparents peuvent être rendus transparents par erreur. Il est à noter que ce BUG a été introduit dans la version 8.1. 2010-12-18 2:04:15.
8.3 L : Correction du BUG suivant, ouvrez l'image d'index dans l'icône, et décochez l'option "Activer l'effet de transparence de l'image", mais le résultat est que la transparence est toujours appliquée parfois. 2010-12-18 3:36:08.
8.4 H : Ajustement de la ressource PIPL du plug-in afin que le filtre puisse obtenir les informations transparentes du document directement depuis PS (l'utilisateur n'est plus obligé de fournir explicitement des canaux supplémentaires). Ajustement de la partie logiquement inexacte du code d'interpolation linéaire et empêché les pixels d'être combinés avec les parties transparentes (noires) de l'image source. 2010-12-19 0:55:23.
8,5 M : Ajustement de la logique de génération de 32 icônes BPP, rétrogradation des images directement à partir des données du document PS (la méthode originale perdait parfois des couleurs lors de la génération d'images d'index, la raison est inconnue). 2010-12-19 1:41:08.
8,6 L : Ajout d'une option pour stocker les icônes anti-aliasées sous forme d'images uniques à 32 BPP. 2010-12-22 2:05:30.
8.7 L : Lors de la lecture des images d'index, la méthode de réglage de la transparence passe à la méthode précédente. Cela peut garantir que l'application de la transparence est plus précise. Pour les images à 16 couleurs, la transparence sera appliquée correctement. Pour les images à 256 couleurs, essayez de trouver les couleurs qui ne sont pas utilisées dans l'image comme couleurs transparentes, afin que la transparence puisse ne pas l'être. appliqué. Le principal inconvénient de cette méthode est que lors de l'enregistrement sous, l'image indexée en 16 couleurs peut être mise à niveau vers une image en 256 couleurs. 2010-12-23 2:57:17.
8,8 L : Légèrement ajusté la méthode de cartographie linéaire pour la lecture des valeurs de pixelsde 16 images BPP (peu d'impact). 2010-12-24 18:48.
(9) Remerciements :
Merci à Chris Cox (employé d'Adobe) d'avoir répondu à mes questions sur le forum officiel.
URL de la section Photoshop SDK du forum Adobe :
http://forums.adobe.com/community/photoshop/photoshop_sdk
(10) Documents de référence :
10.1 Algorithme Octree (adresse omise).
10.2 SDK Photoshop (6.0, CS).
10.3 ICONPRO (exemple fourni dans la documentation technique MSDN).
(11) Introduction aux termes utilisés dans cet article
11.1 BPP (Bits Per Pixel)
C'est la profondeur de bits de l'image . Sa signification est de décrire le nombre de bits utilisés pour chaque pixel (un octet contient 8 bits). Par exemple, pour un bitmap RVB en vraies couleurs, chaque pixel est représenté par trois octets et son BPP = 24. Une image en noir et blanc (un bitmap binaire) a une profondeur de bits de 1. Une image indexée à 16 couleurs a une profondeur de bits de 4 (chaque octet représente deux pixels) et une image indexée à 256 couleurs a une profondeur de bits de 4 (chaque octet représente deux pixels) et une image indexée à 256 couleurs a une profondeur de bits de 4. une profondeur de bits de 8 (chaque octet représente un pixel). Habituellement, la profondeur de bits divisée par 8 représente le nombre d'octets par pixel.
L'image en niveaux de gris à laquelle nous faisons souvent référence n'est pas réellement un format propriétaire, mais une image spéciale d'index de 256 couleurs dont la palette est caractérisée par R, V, B pour chaque couleur. Les trois composantes sont égales, et les 256 les couleurs de la palette vont de (0, 0, 0) à (255, 255, 255), donc la valeur de ses données d'image est toujours essentiellement un indice de couleur, mais elle peut également être comprise comme la luminosité des niveaux de gris.
11.2 Anti-aliasing (AntiAlias)
Ceci est ma traduction personnelle, qui n'est peut-être pas assez précise. On peut l'appeler anti-aliasing pour être plus conforme aux habitudes d'un plus grand nombre de personnes. Il s'agit d'une technique qui utilise des pixels semi-transparents pour éliminer l'alias. Tout d'abord, nous devons comprendre que la raison de cette sensation irrégulière est que l'écran utilise une grille matricielle dense pour présenter l'image. GDI définit les pixels de la matrice de points selon l'algorithme d'image de l'ordinateur (transformant essentiellement le signal analogique mathématique en un signal analogique mathématique). signal numérique discrétisé), les lignes droites de ce type de présentation semblent irrégulières, un peu comme des escaliers. Les mutations non lisses dans les pixels adjacents créent une apparence irrégulière.
Des techniques plus complexes de rendu de lignes droites nécessitent l'utilisation de pixels partiellement transparents et de pixels opaques. Les pixels sont définis sur une couleur unie ou une couleur mélangée à la couleur d'arrière-plan (en fonction de leur proximité avec la ligne). Cette méthode de rendu est appelée anticrénelage et produit des lignes droites visuellement plus lisses et plus douces.
L'icône d'anti-aliasing mentionnée dans cet article fait référence à l'image 32 BPP. Autrement dit, chaque pixel est représenté par 4 octets, qui représentent respectivement R, V, B, A (alpha). Il existe un canal Alpha de plus que le bitmap RVB ordinaire, qui est utilisé pour décrire la transparence du pixel. Par conséquent, vous pouvez spécifier la translucidité des pixels pour créer un mélange doux avec l'arrière-plan, c'est-à-dire pour obtenir un effet d'anticrénelage.
① Le répertoire du plug-in PS fait généralement référence aux plug-ins $(PS INSTALL DIR) Tant que les fichiers de plug-in tiers (.8B*) sont placés dans ce répertoire, PS le fera. scannez et essayez de charger les fichiers 8B* dans ce répertoire. Le type de plug-in n'est pas déterminé par le nom du suffixe, mais est spécifié par son attribut PIPL. Dans ce répertoire, vous pouvez créer des sous-répertoires correspondants en fonction des types de plug-ins. Par exemple, filtrez (Filtre), format de fichier (File Format), mais notez que tant que le fichier est placé dans le répertoire des plug-ins de PS, PS essaiera de le charger. Le répertoire du plug-in peut être obtenu en recherchant l'emplacement suivant dans le registre :
HKEY_LOCAL_MACHINESOFTWAREAdobePhotoshop (numéro de version, tel que 8.0) PluginPath
Mais pour la version chinoise de PS CS, cette valeur Le chemin de la version anglaise est conservé (non chinois), donc c'est faux, cela crée donc un petit obstacle pour nous de fournir un outil d'installation plus simple et plus facile à utiliser pour le plug-in. Pour la version anglaise, il peut être considéré comme le sous-répertoire Plug-Ins sous le répertoire d'installation PS.
Pour plus d'articles sur le plug-in Photoshop pour la lecture et l'écriture de fichiers d'icônes ICO, veuillez faire attention au site Web PHP chinois !