Heim  >  Artikel  >  Web-Frontend  >  Photoshop-Plugin zum Lesen und Schreiben von ICO-Symboldateien

Photoshop-Plugin zum Lesen und Schreiben von ICO-Symboldateien

高洛峰
高洛峰Original
2017-02-20 09:57:352278Durchsuche

 Dies ist ein Dateiformat-Plug-in, das ich für Photoshop geschrieben habe, IcoFormat, das zum Lesen und Schreiben von Windows-Symboldateien (Erweiterungen ICO, CUR) verwendet wird. Das PS-Plugin für das Symboldateiformat wurde vor vielen Jahren von einem Ausländer geschrieben, aber das von mir bereitgestellte Plug-in verfügt jetzt über bessere Funktionen und es gibt genügend Gründe, das vom Ausländer bereitgestellte Plug-in zu ersetzen.

Ich erinnere mich nicht genau an die Eigenschaften des Ausländer-Plug-Ins. Der Vergleich sieht aufgrund meiner Erinnerung wahrscheinlich wie folgt aus:

(1) Die ICO-Datei kann nicht angezeigt werden, wenn das Ausländer-Plug-in vorhanden ist Das Plug-in wird im Dateidialogfeld ausgewählt. Möglicherweise liegt ein Problem beim Schreiben seiner PiPL-Ressourcen vor. Mein Plugin hat dieses Problem nicht.

(2) Das Plug-in von Foreigner kann keine Vorschau anzeigen, wenn eine Datei mit mehreren Bildern geöffnet wird. Ich stelle jedoch ein Vorschaubild im Dialogfeld bereit, was benutzerfreundlicher ist.

(3) Das Plug-in von Foreigner kann den transparenten Teil des Symbols (im Speicher) nicht sehr gut verarbeiten, aber mit meinem Plug-in können Sie den transparenten Teil sehr gut einstellen.

(4) Das Plug-in des Ausländers kann die Multi-Image-Anti-Aliasing-Symbole des XP-Systems nicht speichern, aber mein Plug-In kann die Anti-Aliasing-Symbole speichern und automatisch Bilder anderer Qualität und Standard generieren Größen (ich denke, das ist der wichtigste Grund, die Plug-Ins von Ausländern zu ersetzen).

(5) Beim Herabstufen des Bildes wird der Octree-Algorithmus verwendet. Die Qualität des herabgestuften Bildes ist besser als die von Software wie IconWorkshop verwendete Methode.

(6) Mein Plug-in ist skriptfähig (d. h. die Plug-in-Parameter werden im PS-Skriptsystem gespeichert) und die Einstellungen des Benutzers können während der Laufzeit gespeichert werden.

(7) Mein Plug-in kann Cursor-Dateien (CUR) öffnen und speichern, ausländische Plug-ins scheinen dies jedoch nicht zu können. Und möglicherweise werde ich in Zukunft weitere Funktionen wie den Import von Symbolen aus PE-Dateien weiterentwickeln.

Im Folgenden finden Sie eine kurze Erklärung und Einführung zu diesem Plug-in. Dieses Plug-In verfügt über insgesamt 4 Dialogfelder, nämlich das Dialogfeld „Info“, das Dialogfeld „Bildauswahl“ (beim Öffnen einer Datei), das Dialogfeld „Einstellungen für transparente Teile“ und das Dialogfeld „Einstellungen für Bildspeicheroptionen“. Ich werde sie unten einzeln zeigen.

(1) Bildauswahl-Dialogfeld

Wenn ein Symbol mit mehreren Bildern geöffnet wird, erscheint ein Bildauswahl-Dialogfeld:

>  用于读写ICO图标文件的 Photoshop 插件

Der Hauptzweck hier besteht darin, den Benutzer aufzufordern, ein Bild zum Öffnen aus der Datei auszuwählen. „UND MASK oder Alhpa als unabhängigen Kanal hinzufügen“ bedeutet, dass, wenn es sich um ein Symbol unter 32 BPP handelt, UND MASK (. Schwarz und Weiß (zweifarbige Bitmap, Weiß bedeutet transparent) wird dem neuen Kanal in PS hinzugefügt. Wenn es sich um ein 32-BPP-Symbol handelt, wird der Alpha-Kanal als neuer Kanal in PS hinzugefügt. „Ob das Schachbrettraster angezeigt werden soll“ gilt für die Bildvorschau im Dialogfeld. Wenn diese Option aktiviert ist, wird die Rückruffunktion in PS tatsächlich zum Zeichnen aufgerufen, andernfalls wird sie über die GDI-Funktion von WIN32 gezeichnet.

(2) Dialogfeld zur Auswahl der Bildqualität

Beim Speichern einer Datei werden je nach Bildmodus unterschiedliche Dialogfelder angezeigt. Wenn der aktuelle Bildmodus der RGB-Modus ist, wird das folgende Dialogfeld angezeigt, in dem der Benutzer aufgefordert wird, festzulegen, welches Qualitätssymbol gespeichert werden soll. Wenn Sie das Anti-Aliasing-Symbol auswählen, füge ich der Datei automatisch Bilder in anderen Größen und Farbqualitäten hinzu (die endgültige Datei kann je nach Dateigröße und Standardbildgröße 3 bis 12 Bilder enthalten). Beziehung) werden die von diesem Plug-In generierten Anti-Alias-Symbole vollständig unter Bezugnahme auf die MSDN-Anforderungen für in XP-Systemen verwendete Symbole generiert, sodass die von diesem Plug-In generierten Anti-Alias-Symbole direkt in das Windows-Anwendungsprojekt importiert werden können von VS zur Nutzung. Informationen zu Anti-Aliasing-Symbolen finden Sie in meinem vorherigen Artikel.

 

 用于读写ICO图标文件的 Photoshop 插件

Die folgenden Stretch-Modus-Optionen gelten nur für 32BPP-Anti-Aliasing-Symbole, da hier nur 32 BPP die Notwendigkeit mit sich bringt, das Bild zu verkleinern. Das sogenannte Löschen von Pixeln bedeutet, dass bei überlappenden Pixeln nur ein bestimmter Pixel im Bild aufgenommen wird. Unter linearer Interpolation versteht man die Durchführung einer linearen Interpolation zwischen vier Pixeln im Quellbild. Im Prinzip erfordert das Löschen von Pixeln weniger Operationen als die lineare Interpolation, und die Skalierungsqualität der linearen Interpolation ist möglicherweise besser, in der Praxis ist es jedoch schwierig, einen großen Unterschied zu spüren.

Wenn 16 BPP ausgewählt ist, ist das gespeicherte Bild ein Bild der X-5-5-5-Verteilung. Der Bildverschlechterungsalgorithmus, der bei der Auswahl von 4 BPP- oder 8 BPP-Bildern verwendet wird, ist der Octree-Algorithmus (den ich in einem früheren Artikel vorgestellt habe). Da der Octree-Algorithmus das Bild möglicherweise in eine einzige Farbe umwandelt, wenn die Anzahl der Farben gering ist, habe ich keine Option zum Speichern als monochromes Bild bereitgestellt (minimaler BPP ist 4). Das Bild unten zeigt den Bildqualitätseffekt nach dem Downgrade und dem Speichern eines Symbols:

  用于读写ICO图标文件的 Photoshop 插件

Mit diesem Plug-in können Sie PNG-Bilder ganz einfach in Anti-Aliasing-Symbole konvertieren. Die Methode ist: Öffnen Sie das PNG-Bild in PS und speichern Sie es dann als ICO-Datei.

(3) Dialogfeld „AND-MASKE-Einstellung“

Wenn sich das Bild beim Speichern der Datei im Indexmodus befindet, muss der Benutzer den transparenten Teil (AND) festlegen MASKEN-Teil). Die Standardoption besteht darin, die Transparenzinformationen direkt aus dem PS-Dokument selbst zu verwenden. In diesem Dialogfeld können Sie jedoch auch andere Möglichkeiten zum Festlegen der Transparenzinformationen auswählen.

  用于读写ICO图标文件的 Photoshop 插件

  Hier gibt es viele Einstellungen. Sie können das Dropdown-Feld zum Umschalten verwenden, und unten können verschiedene Eingabeschnittstellen bereitgestellt werden. Sie können die transparente Farbe auf Schwarz, Weiß, Vordergrund, Hintergrund, die Farbe eines bestimmten Abtastpunkts, eine bestimmte RGB-Farbe oder den Alphakanal (Weiß bedeutet transparent) festlegen oder einen Index in der Farbtabelle angeben.

(4) Über-Dialogfeld

Sie können es im PS-Menü sehen: Hilfe-Über Plug-in-ICO..., dieses Dialogfeld ist es Auch von mir sorgfältig entworfen und geschrieben, und es ist sehr schön. Wenn Sie die Maus in diesem Dialogfeld bewegen, können Sie die Rückmeldung meiner Blog-URL an die Maus sehen. Sie können auf die URL klicken, um den Standardbrowser zum Öffnen der URL aufzurufen. Dies wird durch die von PS bereitgestellte CallBack Suite erreicht, die ich in meinem vorherigen Tutorial zum Schreiben von PS-Filtern vorgestellt habe.

  用于读写ICO图标文件的 Photoshop 插件

  (5) Weitere Anweisungen:

Dieses Plug-in basiert auf meiner Recherche in einigen kürzlich veröffentlichten Blogs. Beginnend mit dem Der Zweck der Veröffentlichung dieser Artikel besteht darin, die Technologie für dieses Plug-in vorzubereiten. Die Entwicklung dieses Plug-Ins erfordert viel Aufwand, einschließlich der Untersuchung von ICO-Dateiformaten, PS SDK usw. Die referenzierten Materialien (z. B. der Octree-Algorithmus) wurden in früheren Blogbeiträgen vorgestellt und werden hier weggelassen.

 5.1 Wenn die X-, Y-Auflösung nicht in der Datei angegeben ist, behalte ich den Standardwert von PS in PS bei: 72 Pixel/Zoll.

 5.2 Wenn das indizierte Bild geöffnet ist, können Sie die aktuelle Farbtabelle im Menü sehen: Bild-Modus-Farbtabelle. Da manche Software (z. B. AcdSee) die Farbtabelle nicht korrekt in Bilder mit der tatsächlichen Anzahl von Farben analysieren kann, ist die Farbtabelle beim Speichern der Datei immer auf 16 oder 256 eingestellt, nicht auf die tatsächliche Anzahl von Farben.

 5.3 Dieses Plug-in ist besonders für die folgenden Benutzer geeignet. Ich empfehle Ihnen dringend, dieses Plug-in den folgenden Personen zu installieren:

 PS-erfahrene Benutzer, Windows-Symboldesigner, Programmierer die gerne selbst am UI-Design teilnehmen, Ingenieure und andere Techniker (Leute wie ich).

Mit diesem Plug-in können Benutzer die leistungsstarken Bildverarbeitungsfunktionen von Photoshop vollständig nutzen und sind nicht mehr durch die eingeschränkten Bearbeitungsmöglichkeiten von IDEs wie VC und VS.NET eingeschränkt, sodass Sie schönere Bilder erstellen können Bilder mit Hilfe von Photoshop Icons erstellen, natürlich können Sie auch viele PNG-Materialien im Internet problemlos in im Programm verwendete Icons umwandeln.

Ich hoffe aufrichtig, dass mehr Menschen es mögen und nutzen werden. Wenn Sie Kommentare, Vorschläge oder Bedürfnisse haben, können Sie gerne eine Nachricht auf meinem Blog hinterlassen oder eine E-Mail an mein Postfach senden (die Postfachadresse finden Sie im schwarzen Brett links).

(6) Zum Schluss der Download-Link für das Plug-in-Release-Paket:

http://files.cnblogs.com/hoodlum1980/PsPlugIns_V2013.zip

(7) Installationsmethode:

Kopieren Sie die Datei „IcoFormat.8BI“ in das Dateiformat-Plug-in-Verzeichnis ① von Photoshop, z. B. C:ProgrammeAdobePhotoshop CS-Plug-in- im Dateiformat, starten Sie einfach PS neu. Überprüfen Sie, ob im PS-Menü das folgende Menü vorhanden ist: „Hilfe – Über Plug-in-ICO …“. Dies bedeutet, dass das Plug-in erfolgreich installiert wurde.

 

 (8) Datensatz aktualisieren (BUG-Level: H: äußerst wichtig; M: mittel; L: unwichtig):

 8,1 M: Als Qualität unter 32 BPP speichern At Damals wurde die Logik der Einstellung von ANDMASK angepasst (alle Alphakanäle unter 255 werden auf transparent gesetzt), um die Anzeige harter Schatten zu vermeiden. 17.12.2010.

8.2 H: Der Fehler wurde behoben, der dazu führte, dass beim Speichern des 32BPP-Anti-Aliasing-Symbols und der Auswahl der linearen Interpolation auch der Alpha-Kanal die lineare Interpolation verwendet (die richtige Methode besteht darin, dass der Alpha-Kanal weiterhin durch das Löschen von Pixeln generiert wird). Dieser Fehler führt dazu, dass beim Generieren von Bildern anderer Größen fälschlicherweise Pixel, die nicht transparent sein sollten, transparent gemacht werden. Es ist erwähnenswert, dass dieser Fehler in 8.1 eingeführt wurde. 2010-12-18 2:04:15.

 8.3 L: Der folgende Fehler wurde behoben. Öffnen Sie das Indexbild im Symbol und deaktivieren Sie die Option „Bildtransparenzeffekt aktivieren“. Das Ergebnis ist jedoch, dass manchmal immer noch Transparenz angewendet wird. 18.12.2010 3:36:08.

8.4 H: Die PIPL-Ressource des Plug-Ins wurde angepasst, sodass der Filter die transparenten Informationen des Dokuments direkt von PS erhalten kann (der Benutzer muss nicht mehr explizit zusätzliche Kanäle angeben). Der logisch ungenaue Teil des linearen Interpolationscodes wurde angepasst und verhindert, dass Pixel mit den transparenten Teilen (schwarz) des Quellbilds kombiniert werden. 19.12.2010 0:55:23.

8,5 M: Die Logik zum Generieren von 32 BPP-Symbolen wurde angepasst, indem Bilder direkt aus den Daten im PS-Dokument herabgestuft wurden (bei der ursprünglichen Methode gingen bei der Generierung von Indexbildern gelegentlich Farben verloren, der Grund ist unbekannt). 19.12.2010 1:41:08.

8.6 L: Option hinzugefügt, um geglättete Symbole als Einzelbilder mit 32 BPP zu speichern. 22.12.2010 2:05:30.

 8.7 L: Beim Lesen von Indexbildern wird die Methode zum Einstellen der Transparenz auf die vorherige Methode geändert. Dadurch kann sichergestellt werden, dass die Transparenz bei 16-Farben-Bildern korrekt angewendet wird. Versuchen Sie, Farben zu finden, die im Bild nicht als transparente Farben verwendet werden, sodass die Transparenz möglicherweise nicht vorhanden ist angewandt. Der Hauptnachteil dieser Methode besteht darin, dass beim Speichern als das indizierte 16-Farben-Bild möglicherweise auf ein 256-Farben-Bild aktualisiert wird. 23.12.2010 2:57:17.

8,8 L: Die lineare Mapping-Methode zum Lesen der Pixelwerte von 16 BPP-Bildern wurde leicht angepasst (geringe Auswirkung). 24.12.2010 18:48.

(9) Danksagungen:

Vielen Dank an Chris Cox (Adobe-Mitarbeiter) für die Beantwortung meiner Fragen im offiziellen Forum.

 URL des Photoshop SDK-Bereichs des Adobe-Forums:

 http://forums.adobe.com/community/photoshop/photoshop_sdk

 (10) Referenzmaterialien:

 10.1 Octree-Algorithmus (Adresse weggelassen).

 10.2 Photoshop SDK (6.0, CS).

 10.3 ICONPRO (Beispiel in der technischen Dokumentation von MSDN bereitgestellt).

(11) Einführung in die in diesem Artikel verwendeten Begriffe

11,1 BPP (Bits Per Pixel)

Das ist die Bittiefe des Bildes . Seine Bedeutung besteht darin, die Anzahl der für jedes Pixel verwendeten Bits zu beschreiben (ein Byte enthält 8 Bits). Beispielsweise wird bei einer RGB-Echtfarben-Bitmap jedes Pixel durch drei Bytes dargestellt und sein BPP = 24. Ein Schwarzweißbild (eine binäre Bitmap) hat eine Bittiefe von 1. Ein mit 16 Farben indiziertes Bild hat eine Bittiefe von 4 (jedes Byte stellt zwei Pixel dar) und ein mit 256 Farben indiziertes Bild hat eine Bittiefe von 4 eine Bittiefe von 8 (jedes Byte repräsentiert ein Pixel). Normalerweise stellt die Bittiefe dividiert durch 8 die Anzahl der Bytes pro Pixel dar.

Das Graustufenbild, auf das wir uns oft beziehen, ist eigentlich kein proprietäres Format, sondern ein spezielles 256-Farben-Indexbild, dessen Palette durch R, G, B für jede Farbe gekennzeichnet ist. Die drei Komponenten sind gleich und die 256 Die Palettenfarben reichen von (0, 0, 0) bis (255, 255, 255), sodass der Wert seiner Bilddaten immer noch im Wesentlichen ein Farbindex ist, aber auch als Helligkeit der Graustufen verstanden werden kann.

 11.2 Anti-Aliasing (AntiAlias)

 Dies ist meine persönliche Übersetzung, die möglicherweise nicht genau genug als Anti-Aliasing bezeichnet wird, um den Gewohnheiten von mehr Menschen zu entsprechen. Dies ist eine Technik, die halbtransparente Pixel verwendet, um Aliasing zu verhindern. Zunächst müssen wir verstehen, dass der Grund für das gezackte Gefühl darin liegt, dass das Display ein dichtes Matrixraster verwendet, um das Bild darzustellen. GDI setzt die Punktmatrixpixel gemäß dem Computerbildalgorithmus (wodurch im Wesentlichen das mathematische Analogsignal in a umgewandelt wird). (diskretisiertes digitales Signal) wirken die geraden Linien dieses Darstellungstyps gezackt, ein bisschen wie Treppen. Nicht glatte Mutationen in benachbarten Pixeln erzeugen ein gezacktes Erscheinungsbild.

Komplexere Techniken zum Rendern gerader Linien erfordern die Verwendung von teilweise transparenten Pixeln und undurchsichtigen Pixeln. Pixel werden entweder auf eine Volltonfarbe oder eine Mischfarbe mit der Hintergrundfarbe eingestellt (abhängig von ihrer Nähe zur Linie). Diese Rendering-Methode wird Anti-Aliasing genannt und erzeugt optisch glattere, weichere gerade Linien.

Das in diesem Artikel erwähnte Anti-Aliasing-Symbol bezieht sich auf das 32-BPP-Bild. Das heißt, jedes Pixel wird durch 4 Bytes dargestellt, die jeweils R, G, B, A (Alpha) darstellen. Es gibt einen Alpha-Kanal mehr als die normale RGB-Bitmap, der zur Beschreibung der Transparenz des Pixels verwendet wird. Daher können Sie die Transparenz der Pixel festlegen, um eine sanfte Überblendung mit dem Hintergrund zu erzielen, also einen Anti-Aliasing-Effekt zu erzielen.

 


 ① Das PS-Plug-In-Verzeichnis bezieht sich normalerweise auf $(PS INSTALL DIR) Plug-Ins. Solange die Plug-In-Dateien von Drittanbietern (.8B*) in diesem Verzeichnis abgelegt sind, wird PS verwendet Scannen Sie und versuchen Sie, die 8B*-Dateien in dieses Verzeichnis zu laden. Der Typ des Plug-Ins wird nicht durch den Suffixnamen bestimmt, sondern durch sein PIPL-Attribut angegeben. In diesem Verzeichnis können Sie je nach Plug-In-Typ entsprechende Unterverzeichnisse erstellen. Zum Beispiel Filter (Filter), Dateiformat (Dateiformat). Beachten Sie jedoch, dass PS versucht, sie zu laden, solange sich die Datei im Plug-In-Verzeichnis von PS befindet. Das Plug-in-Verzeichnis kann durch Durchsuchen des folgenden Speicherorts in der Registrierung abgerufen werden:

 HKEY_LOCAL_MACHINESOFTWAREAdobePhotoshop (Versionsnummer, z. B. 8.0) PluginPath

Aber für die chinesische Version In PS CS wird dieser Wert beibehalten. Der englische Versionspfad wird beibehalten (nicht chinesisch), daher ist er falsch. Dies stellt für uns ein kleines Hindernis dar, ein einfacheres und benutzerfreundlicheres Installationstool für das Plug-In bereitzustellen. Für die englische Version kann man es sich als Plug-Ins-Unterverzeichnis im PS-Installationsverzeichnis vorstellen.

Weitere verwandte Artikel über das Photoshop-Plug-in zum Lesen und Schreiben von ICO-Symboldateien finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn