search
HomeWeb Front-endPS TutorialPhotoshop plugin for reading and writing ICO icon files

 This is a file format plug-in I wrote for Photoshop, IcoFormat, which is used to read and write Windows icon files (extensions ICO, CUR). The PS plug-in for the icon file format was written by a foreigner many years ago, but the plug-in I provide now has better functions, and there are enough reasons to replace the plug-in provided by the foreigner.

I don’t remember the characteristics of the foreigner’s plug-in very clearly. The comparison is probably as follows based on memory:

(1) The ICO file cannot be displayed when the foreigner’s plug-in is selected in the file dialog box. . It may be because there is a problem with the writing of his PiPL resources. My plugin doesn't have this problem.

 (2) Foreigner’s plug-in cannot preview when opening a file containing multiple images, but I provide a preview image on the dialog box, which is more user-friendly.

 (3) Foreigner’s plug-in cannot handle the transparent part of the icon very well (in memory), but with my plug-in, you can set the transparent part very well.

 (4) The foreigner’s plug-in cannot save the multi-image anti-aliased icons of the XP system, but my plug-in can save the anti-aliased icons and automatically generate images of other qualities and standard sizes (I think this is the most important reason to replace foreigners’ plug-ins).

  (5) The octree algorithm is used when downgrading the image. The quality of the downgraded image is better than the method used by software such as IconWorkshop.

 (6) My plug-in is scripting-aware (that is, the plug-in parameters will be stored in the PS script system), and the user's settings can be remembered during runtime.

 (7) My plug-in can open and save cursor (CUR) files, but foreigners’ plug-ins seem not to be able to. And I may continue to develop other functions such as importing icons from PE files in the future.

The following is a brief explanation and introduction to this plug-in. This plug-in has a total of 4 dialog boxes, namely the About dialog box, the image selection dialog box (when opening a file), the transparent part setting dialog box, and the image saving option setting dialog box. I will show them one by one below.

    (1) Image selection dialog box

 When an icon containing multiple images is opened, an image selection dialog box will pop up:

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

The main purpose here is to ask the user to select an image to open from the file. "Add AND MASK or Alhpa as an independent channel" means that if it is an icon below 32 BPP, AND MASK (black and white Two-color bitmap (white means transparent) is added to the new channel in PS. If it is a 32 BPP icon, the Alpha channel will be added as a new channel in PS. "Whether to display the checkerboard grid" is for the image preview on the dialog box. If checked, the callback function in PS is actually called for drawing, otherwise it is drawn through the GDI function of WIN32.

    (2) Image quality selection dialog box 

  When saving a file, different dialog boxes will pop up depending on the image mode. If the current image mode is RGB mode, the following dialog box will pop up, asking the user to set what quality icon to save. If you select the anti-aliased icon, I will automatically add images of other sizes and color qualities to the file (the final file may contain 3 to 12 images, depending on the size of the file and the standard image size) Determined by the relationship), the anti-aliased icons generated by this plug-in are completely generated with reference to MSDN's requirements for icons used in XP systems, so the anti-aliased icons generated by this plug-in can be directly imported into the Windows application project of VS for use. Regarding anti-aliased icons, you can refer to my previous article.

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

                                                     gersgo’d 32BPP anti-aliased icons are only valid because here only 32 BPP is involved and the image needs to be reduced. The so-called deletion of pixels means that when pixels overlap, only a certain pixel on the image will be taken. Linear interpolation refers to taking a linear interpolation among four pixels on the source image. In principle, deleting pixels requires less operation than linear interpolation, and the scaling quality of linear interpolation may be better, but in practice it is difficult to feel much difference.

If you select 16 BPP, the saved image is an X-5-5-5 distribution image. The image degradation algorithm used when selecting 4 BPP or 8 BPP images is the octree algorithm (which I introduced in a previous article). Since the octree algorithm may mutate the image into all the same color when the number of colors is small, I did not provide an option to save as a monochrome image (minimum BPP is 4). The picture below shows the image quality effect after downgrading and saving an icon:

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

  With this plug-in, you can easily convert PNG images into anti-aliased icons. The method is: open the PNG image in PS, and then save it as an ICO file.

    (3) AND MASK Settings Dialog Box 

  When saving a file, if the image is in index mode, the user is required to set the transparent part (AND MASK part). The default option is to use the transparency information directly from the PS document itself, but this dialog box also allows you to choose other ways to set the transparency information.

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

  There are many settings here. You can use the drop-down box to switch, and different input interfaces may be provided below. You can set the transparent color to black, white, foreground, background, the color of a certain sampling point, a specified RGB color, or the alpha channel (white means transparent), or specify an index in the color table.

                        ious

  You can see it in the PS menu: Help-About Plug-in-ICO..., this dialog box It is also carefully designed and written by me, and it is quite beautiful. When you move the mouse in this dialog box, you can see the feedback of my blog URL to the mouse. You can click on the URL to call the default browser to open the URL. This is achieved through the CallBack Suite provided by PS, which I introduced in my previous tutorial on how to write PS filters.

​​ Starting from the image file format viewer, to AlphaBlend and anti-aliased icons, to the octree algorithm for generating indexed images, the purpose of publishing these articles is to prepare the technology for this plug-in. Developing this plug-in requires a lot of effort, including studying ICO file formats, PS SDK, etc. The referenced materials (such as the octree algorithm) have been introduced in previous blog posts and are omitted here.  用于读写ICO图标文件的 Photoshop 插件

 5.1 If the X, Y resolution is not specified in the file, I will keep the default value of PS in PS: 72 pixels/inch.

 5.2 If the indexed image is opened, you can see the current color table in the menu: Image-Mode-Color Table. Since some software (such as AcdSee) cannot correctly parse the color table into images with the actual number of colors, when I save the file, the color table is always set to 16 or 256, not the actual number of colors.

5.3 This plug-in is especially suitable for the following users. I would strongly recommend you to install this plug-in to the following people:

Skilled PS users, Windows icon designers, programmers who like to participate in UI design themselves , engineers and other technical people (people like me).

This plug-in allows users to fully utilize the powerful image processing capabilities of Photoshop, and is no longer restricted by the limited editing capabilities of IDEs such as VC and VS.NET, so that you can create more beautiful images with the help of Photoshop Icons, of course you can also easily convert many PNG materials on the Internet into icons used in the program.

I sincerely hope that more people will like it and use it. If you have any comments, suggestions or needs, you are welcome to leave a message on my blog, or send an email to my mailbox (the mailbox address is on the bulletin board on the left).

                               ​​​The last is the download link for the plug-in release package:

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

   (7)Installation method:

  Copy the "IcoFormat.8BI" file to Photoshop's file format plug-in directory ①, for example, C:\Program Files\Adobe\Photoshop CS\ Plug-in\File Format\, then restart PS. Check if there is the following menu in the PS menu: "Help-About Plug-in-ICO...", it means the plug-in is installed successfully.

    

  (8) Update record (BUG level: H: extremely important; M: medium; L: unimportant):

  8.1 M: Save as quality below 32BPP At that time, the logic of setting ANDMASK was adjusted (all alpha channels less than 255 are set to transparent) to avoid showing harsh shadows. 2010-12-17.

 8.2 H: Fixed the bug that when saving the 32BPP anti-aliased icon and selecting linear interpolation, the Alpha channel also uses linear interpolation (the correct method is that the Alpha channel is still generated by deleting pixels). This bug causes that when generating images of other sizes, pixels that should not be transparent may be mistakenly made transparent. It is worth mentioning that this BUG was introduced in 8.1. 2010-12-18 2:04:15.

 8.3 L: Fixed the following BUG, ​​open the index image in the icon, and uncheck the "Turn on image transparency effect" option, but the result is sometimes still applied transparency. 2010-12-18 3:36:08.

8.4 H: Adjusted the plug-in's PIPL resource so that the filter can obtain the document's transparent information directly from PS (the user is no longer required to explicitly provide additional channels). Adjusted the logically inaccurate part of the linear interpolation code and prevented pixels from being combined with the transparent parts (black) of the source image. 2010-12-19 0:55:23.

8.5 M: Adjusted the logic for generating 32 BPP icons, downgrading images directly from the data in the PS document (the original method occasionally lost colors when generating index images, the reason is unknown). 2010-12-19 1:41:08.

8.6 L: Added option to store anti-aliased icons as single images at 32 BPP. 2010-12-22 2:05:30.

 8.7 L: When reading index images, the method of setting transparency is changed to the previous method. It can ensure that the application of transparency is more accurate. For 16-color images, transparency will be applied correctly. For 256-color images, try to find colors that are not used in the image as transparent colors, so transparency may not be applied. The main disadvantage of this method is that when saving as, the 16-color indexed image may be upgraded to a 256-color image. 2010-12-23 2:57:17.

 8.8 L: Slightly adjusted the linear mapping method for reading pixel values ​​​​of 16 BPP images (little impact). 2010-12-24 18:48.

    (9) Acknowledgments:                  

##                       by Chris Cox (Adobe employee)] Chris Cox (Adobe employee) responded to my questions on the official forum.

The URL of the Photoshop SDK section of the Adobe forum:

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

(10) Reference materials:

 10.1 Octree algorithm (address omitted).

  10.2 Photoshop SDK (6.0, CS).

  10.3 ICONPRO (example provided in MSDN technical documentation).

    (11) Introduction to the terms used in this article    11.1 BPP (Bits Per Pixel)

   That is the bit depth of the image. Its meaning is to describe the number of bits used for each pixel (one byte contains 8 bits). For example, for an RGB true color bitmap, each pixel is represented by three bytes, and its BPP = 24. A black-and-white image (a binary bitmap) has a bit depth of 1. A 16-color-indexed image has a bit-depth of 4 (each byte represents two pixels), and a 256-color-indexed image has a bit depth of 8 (each byte represents one pixel). Usually the bit depth divided by 8 represents the number of bytes per pixel.

The grayscale image we often refer to is not actually a proprietary format, but a special 256-color index image whose palette is characterized by R, G, B for each color The three components are equal, and the 256 palette colors range from (0, 0, 0) to (255, 255, 255), so the value of its image data is still essentially a color index, but it can also be understood as The brightness of grayscale.

  11.2 Anti-Alias ​​(AntiAlias)

  This is my personal translation, which may not be accurate enough. It may be called anti-aliasing to be more in line with more people's habits. This is a technique that uses semi-transparent pixels to eliminate aliasing. First of all, we need to understand that the reason for the jagged feeling is that the display uses a dense matrix grid to present the image. GDI sets the dot matrix pixels according to the computer image algorithm (essentially turning the mathematical analog signal into a discretized digital signal). signal), the straight lines of this presentation type look jagged, a bit like stairs. Non-smooth mutations in adjacent pixels create a jagged appearance.

More complex techniques for rendering straight lines require the use of partially transparent pixels and opaque pixels. Pixels are set to either a solid color or a blended color with the background color (depending on their proximity to the line). This rendering method is called anti-aliasing, and it produces visually smoother, softer straight lines.

The anti-aliasing icon mentioned in this article refers to the 32 BPP image. That is, each pixel is represented by 4 bytes, which represent R, G, B, A (alpha) respectively. There is one more Alpha channel than the ordinary RGB bitmap, which is used to describe the transparency of the pixel. Therefore, you can specify the translucency of pixels to create a soft blend with the background, that is, to achieve an anti-aliasing effect.

  


 ① The PS plug-in directory usually refers to $(PS INSTALL DIR)\Plug-Ins. As long as you put the third-party plug-in files (.8B*) in this directory, PS will scan it when it starts. And try to load the 8B* files in this directory. The type of plug-in is not determined by the suffix name, but is specified by its PIPL attribute. In this directory, you can create corresponding subdirectories according to plug-in types. For example, filter (Filter), file format (File Format), but note that as long as the file is placed in the plug-in directory of PS, PS will try to load it. The plug-in directory can be obtained by searching the following location in the registry:

  HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Photoshop\(version number, such as 8.0)\PluginPath

 But for PS For the Chinese version of CS, this value maintains the English version path (not Chineseized), so it is wrong, so this creates a small obstacle for us to provide a simpler and easier-to-use installation tool for the plug-in. For the English version, it can be thought of as the Plug-Ins subdirectory under the PS installation directory.

For more related articles about the Photoshop plug-in for reading and writing ICO icon files, please pay attention to the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How to copy and paste layer styles in PS?How to copy and paste layer styles in PS?May 16, 2025 am 06:00 AM

Copying and pasting layer styles in Photoshop is a key trick to improve productivity. Let's dive into how to do it, and the various details and techniques you may encounter in the process. When we talk about copying and pasting layer styles in Photoshop, the first thing we need to understand is that layer styles refer to effects applied to layers, such as shadows, glows, bevels, and reliefs. Mastering this feature not only saves time, but also ensures consistent design. To copy the style of a layer, right-click the layer you want to copy and select Copy Layer Style. This will copy all the styles of the layer into the clipboard. Next, select the target layer you want to apply these styles, right-click it, and select Paste

How to use PS to synthesize two pictures seamlessly?How to use PS to synthesize two pictures seamlessly?May 15, 2025 pm 11:57 PM

The steps to synthesize two pictures and achieve seamless connection in Photoshop include: 1. Adjust the brightness and contrast to make the tones of the two pictures consistent; 2. Use masks and blending mode to erase the edges to achieve a natural transition. This method requires repeated adjustments and trial and error, paying attention to detail processing and color consistency to achieve the best results.

How to use PS to adjust the insufficient exposure of photos?How to use PS to adjust the insufficient exposure of photos?May 15, 2025 pm 11:54 PM

Adjusting photos with underexposed photos in Photoshop can use the "Exposure", "Brightness/Contrast" and "Curve" adjustment tools: 1. The "Exposure" adjustment is used to initially improve the overall exposure; 2. The "Brightness/Contrast" adjustment can improve the brightness and contrast at the same time; 3. The "Curve" adjustment allows precise control of different brightness ranges, which is suitable for refinement adjustments.

How to color black and white photos on PS?How to color black and white photos on PS?May 15, 2025 pm 11:51 PM

Coloring black and white photos in Adobe Photoshop can use layer masks, color tuning tools, and brush tools. The specific steps include: 1. Open a black and white photo and create a new layer; 2. Use "Hue/Saturation" to adjust the layer to add colors, and accurately control the application area of ​​the color through the layer mask; 3. Use the brush tool to draw on the layer mask to further adjust the color; 4. Keep the original image details and add new colors by setting the layer's blending mode to "Color".

How to design a simple style poster with PS?How to design a simple style poster with PS?May 15, 2025 pm 11:48 PM

The key to designing a minimalist style poster is to convey the message through simple elements and tones. The steps are as follows: 1. Select the A3 size (297x420mm), and the resolution is 300dpi. 2. Use monochromatic or complementary tones, cool tones such as blue and white. 3. Add simple sans serif fonts and geometric figures, pay attention to white space and golden point typesetting. 4. Optimize details, such as text size, spacing and layer style effects.

How to use PS to create Glitch Effect?How to use PS to create Glitch Effect?May 15, 2025 pm 11:45 PM

Making GlitchEffect in Photoshop can be achieved through the following steps: 1. Open and copy the picture. 2. Use the channel mixer to disrupt color balance. 3. Add perturbation filters to increase randomness, adjust transparency or use masks to control the effect. 4. Create a digital stripe effect through the threshold adjustment layer and overlay multiple threshold layers to adjust transparency. 5. Use color balance to adjust the overall tone and add personalized colors. The art of making failures is full of experimental and randomness, and moderate and orderly management of layers is key.

How to create a double exposure effect on PS?How to create a double exposure effect on PS?May 15, 2025 pm 11:42 PM

Making a double exposure effect is a very cool trick in Photoshop. Let's explore how to achieve this effect, as well as the problems and solutions you may encounter in the process. To create a double exposure effect in Photoshop, you first need to select two or more images, and the elements of these images will be fused together in the final effect. When selecting pictures, it is recommended to choose pictures with high contrast and rich details, so that the effect after fusion will be more obvious and attractive. Let's start with a simple example, suppose we have two pictures: one is a portrait and the other is a night view of the city. Our goal is to blend the night view of the city with portraits to create a dreamy double exposure effect. First, we need to import both images

How to create 3D three-dimensional text effects on PS?How to create 3D three-dimensional text effects on PS?May 15, 2025 pm 11:39 PM

There are three main ways to create 3D three-dimensional text effects in Photoshop: 1) Use 3D tools, 2) Layer styles, and 3) Manual drawing. First, when using the 3D tool, create a new document and enter text, select the text layer and select "New 3D Highlight Effect from Selection", and then adjust the rotation, zoom, and position. Secondly, adjust the Depth, Size, and Softening parameters through the Bevel and Emboss options in the layer style to simulate the 3D effect. Finally, manual drawing methods require more skill and time, but with complete control over the effects.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.