evanolds

Icon, Cursor, and Animated Cursor Format v3.7 (May 2010)

Recommended Posts

So I guess some questions that I'd want to ask people are:

1) Are you aware of the numerous other free applications that do icon/cursor editing?

2) If so and you're not using them, why is that? Is it just because you do the editing in PDN and don't want to do the extra step of saving your intermediate work, reopening in another app, and then resaving? Is it because you'd just rather not download another application to your hard drive?

3) If you aren't aware of them, would you be more eager to be informed about them or would you rather some sort of workaround be added to this plug-in to make Paint.NET have extended icon/cursor editing capabilities?

4) Are you happy enough with the way this plug-in is and would rather have me work on new plug-ins that do new things, instead of tweaking other plug-ins to try to accommodate the needs of the more advanced users?

I assure you that these are honest questions and aren't trying to imply something by just being posed. If any current users of this plug-in can give their feedback, I'd appreciate it.

1. A few

2. The available features in icon editing apps I've tried pale in comparison to PDN, not to mention that I've grown accustomed to PDN's capabilities, particularly the use of layers. Since sampled resizing from big icon formats to smaller ones is generally not adequate for professional quality icons, I need to edit formats separately. Your utility, as is, makes this possible, and with no further changes it is still quite useful. However, it is annoying and time consuming to make changes in PDN, then save/load or copy/paste each layer into a different app for the purpose of creating the final file, particularly when it seems the utility is so close to accomplishing what I would like.

3. I have only tried a couple others, including IcoFX, and they had nowhere near the capability of PDN. If you know of other free apps that can meet the need, I would be interested in hearing about them. I'm not stuck on PDN, even if I think it's awesome.

4. Personally, I'm sure work on this particular plug-in would be of greater assistance to me since I'm a software developer who needs to occasionally work with graphics, not a graphics designer who wants Photoshop features for free. I completely understand why you would prefer to work on new features and why that may be best in the long run for more people.

Incidentally, I thought the suggested "hack" of naming the layers when opening an .ico file, then attempting to use the names to identify the desired formats to save in (or including a save option to do so), was a simple idea that wouldn't be particularly difficult to implement and would immediately solve my issues with the add-in.

Of course, releasing the source code would enable others to carry the banner and the burden. I can understand why you'd prefer not to do so if you want to continue to make changes and wish to retain control, but if you'd rather spend your effort elsewhere, why not let somebody else have a go at it?

Share this post


Link to post
Share on other sites

1. A few

2. The available features in icon editing apps I've tried pale in comparison to PDN, not to mention that I've grown accustomed to PDN's capabilities, particularly the use of layers. Since sampled resizing from big icon formats to smaller ones is generally not adequate for professional quality icons, I need to edit formats separately. Your utility, as is, makes this possible, and with no further changes it is still quite useful. However, it is annoying and time consuming to make changes in PDN, then save/load or copy/paste each layer into a different app for the purpose of creating the final file, particularly when it seems the utility is so close to accomplishing what I would like.

3. I have only tried a couple others, including IcoFX, and they had nowhere near the capability of PDN. If you know of other free apps that can meet the need, I would be interested in hearing about them. I'm not stuck on PDN, even if I think it's awesome.

4. Personally, I'm sure work on this particular plug-in would be of greater assistance to me since I'm a software developer who needs to occasionally work with graphics, not a graphics designer who wants Photoshop features for free. I completely understand why you would prefer to work on new features and why that may be best in the long run for more people.

Ok, thanks for the feedback. So my first comment I will steal from Rick:

viewtopic.php?f=27&t=32826

As he says, Paint.NET really just isn't made for this. I would love it if I had access to each separate document that the user was working on and then I could save one icon-image per document, allowing the user to create exact-sized, layer-based, high quality icon images. But I don't have that ability.

If I'm understanding correctly, it's the fact that there's no way to currently save different images in the same icon file that's really lacking? I think no matter what changes I made the user would have to jump through some hoops to author the type of icon files that you desire. There's really no elegant way to deal with this. I have authored a separate app that can do this but I don't want to post it here so PM me if you want it. Plus, there are already a bunch of separate apps that are better suited and the problem is not that people don't know about them but rather that they don't integrate with Paint.NET.

If I went down the avenue of saving different layers as different images, I'd probably want to remove the ability to make multiple resized copies and maybe even eliminate the option to save 8-bit icons. Would people miss the "Copies to be saved" dialog if I removed it and introduced the requirement of naming your layers appropriately or perhaps having transparency to the left and bottom of your layers' images to determine the size? I would think that this would make icon editing a lot more difficult for those that don't need a finer level of control.

This plug-in already violates both the loading and saving rules of PDN because it uses a custom dialog prompt for both. I didn't have a lot of compliant options for authoring this plug-in. In terms of loading and saving, I can't access multiple PDN documents because that is not supported (according to Rick). I can't have a separate app pull in the images directly from PDN (without a copy/paste or save) because there is no plan for interprocess communication mechanisms in PDN (according to Rick). For saving, I can't have an "append mode" where the user saves an icon and then saves again with the same file name and it just writes the new image, leaving the existing ones in the file, because the save code path in PDN always clears out the destination file to 0 bytes first.

I've been going through the plugin code and it has a lot of older code and doesn't even compile anymore, so I'm somewhat resistant to work on it much more, but also reluctant to release the code because it's in such disarray. The danger of me updating this plug-in is that I'm likely to remove something that someone might want in order to give someone else what they want. I don't want the user to see some save prompt and say "what the heck is this" because they're looking at a bunch of different options that exist only to compensate for functionality that PDN just doesn't have. This is primarily because it would be detrimental to the average user and only benefit a small percentage of intermediate or advanced users.

[...] since I'm a software developer [...]
[...] I thought the suggested "hack" of naming the layers [...] was a simple idea that wouldn't be particularly difficult to implement [...]

Glad to hear that it's easy to implement! The icon file format is simple and is outlined here: http://en.wikipedia.org/wiki/ICO_(file_format) so you could probably do that in a few days and have it for us soon :).

...

Alright, I have a habit of making people angry with my "subtle" sarcasm so I won't continue it, but that remark is pretty much true. The best solution for people that have very specific needs is to code up plug-ins for themselves. Such plug-ins, if not distributed, can violate any and all Paint.NET rules and can really help you get at exactly what you want to achieve. You can use reflection to find the class "EOIcoCurWriter", instantiate it, and use it to write Bitmaps to an icon file if you prefer. But please understand that it's in the interest of breaking as few rules as possible and keeping the plug-in at least somewhat easy to use that I'm deciding against these more advanced options for now.

Share this post


Link to post
Share on other sites

Hey, you asked for feedback, and I provided it as I see it. Sorry if it touched a nerve.

I'm still not clear on why you don't release the source. Is there a legal issue? Is it just a matter of protecting your IP?

Anyhow, I think we agree on the following points:

1. PDN is not intended for editing files comprised of multiple images, such as icons.

2. There are other free applications that are designed to do this.

3. PDN's image editing capabilities are superior to these other applications. (I can't speak to commercial icon editing programs since I haven't used any)

You must have thought similarly or you wouldn't have made the add-in. You already addressed the need to open multiple images in an existing file using layers (since the API prevented working with multiple documents). You already figured out how to save multiple images into a single *.ico file. You direct me to the .ICO file spec to sarcastically call attention to the complexity of it, but I wasn't questioning that. It seems to me you've already figured that out, since you're able to take a single image, resize it, and save into a variety of user-selected formats within the single icon file. If I was interested in spending my own time to try and code improved functionality, why would I want to start from scratch and try to recreate all that stuff?

I think no matter what changes I made the user would have to jump through some hoops to author the type of icon files that you desire. There's really no elegant way to deal with this.

I understand that jumping through hoops might be needed to code it. I don't understand why that would present difficulty for the UI design. Here's the logic I'm suggesting, and perhaps you can point out what I'm missing:

1. If you open an .ico file containing multiple images, it works exactly as it does now, with each image opening in a separate layer. The only difference is that each layer is named in a way that identifies the size and color depth (e.g., 32x32_16).

2. When you save an .ico file, you check to see if there are multiple layers before you show the dialog.

3. If there is only one layer, you show the list of formats that the user can automatically include in the output file, just like now.

4. If there is more than one layer, you show the same dialog with an additional checkbox labeled something like "Use Layers for Image Formats", checked by default. If checked, you do not display a list of formats the user can choose, but rather display a read-only list of formats obtained by examining the layer names. If the user unchecks it, you show the same user-selectable list of formats as with a single layer, and the image used for all layers (automatically resized) is the result of merging the layers (also how it works now).

It seems to me this would simplify things for the user if they are editing an existing .ico file, since they don't have to make any decisions. Open, edit, save. If they're making an icon from scratch and want to use your automatic resizing to create the different image formats, no problem; they just make sure there's only a single layer before they save. If they want to get fancy and design their own size-specific images from scratch, then they just have to understand how the layer naming works.

One possible flaw with this suggestion is that it requires that you are able to save an image based on only a single layer, and I don't know if that's supported. I thought it likely that you can iterate through the layers of the active document, and for each one, hide or disable all the others and save just the resultant image (which you would have to crop to the right size and adjust for color depth) as an image format in the output .ico file. Perhaps that isn't possible.

You can use reflection to find the class "EOIcoCurWriter", instantiate it, and use it to write Bitmaps to an icon file if you prefer.

Cool, thanks. I'm not sure why I didn't think of it before, but I'm guessing I can probably just use dotNetReflector to see the source and stop bellyaching about your not releasing it. I look forward to trying on Monday. :)

Share this post


Link to post
Share on other sites
4. If there is more than one layer, you show the same dialog with an additional checkbox labeled something like "Use Layers for Image Formats", checked by default. If checked, you do not display a list of formats the user can choose, but rather display a read-only list of formats obtained by examining the layer names. If the user unchecks it, you show the same user-selectable list of formats as with a single layer, and the image used for all layers (automatically resized) is the result of merging the layers (also how it works now).

One possible problem with that is that FileTypes have a flag dictating whether it prompts to flatten a multilayered image before saving, which can't be changed dynamically. It'd be possible to save a flattened version of the image, but then the user will have a canvas unrepresentative of the saved file.

One possible flaw with this suggestion is that it requires that you are able to save an image based on only a single layer, and I don't know if that's supported.

Yes, that's possible.

Share this post


Link to post
Share on other sites
http://www.evanolds.com/dl/IcoCur.dll

I've re-added the option to save layers separately as individual images within one icon file. To do this, you will have to name the layers in the form

#x#

for example:

32x32

There are also some other improvements, most of which are just small efficiency improvements and may not be noticeable.

Awesome! Works great, thanks.

Share this post


Link to post
Share on other sites

Hello,

I love your extension, and I have a question regarding the 256x256 ico format.

I have an .ico that was created with another tool (I don't know which), and the 256x256 image is a PNG image (the others are BMP), which saves a lot of spaces inside the .ico

I see that every format is saved as BMP with your tool, even the 256x256 images, so the same ico may be a lot greater because of the BMP format instead of PNG for the 256x256 image.

Couldn't you do something about the 256x256 images, so that they are saved as PNG instead of BMP? (Vista and 7 can only read 256x256 PNG icos I believe)

Thank you,

Share this post


Link to post
Share on other sites

Hello,

I love your extension, and I have a question regarding the 256x256 ico format.

I have an .ico that was created with another tool (I don't know which), and the 256x256 image is a PNG image (the others are BMP), which saves a lot of spaces inside the .ico

I see that every format is saved as BMP with your tool, even the 256x256 images, so the same ico may be a lot greater because of the BMP format instead of PNG for the 256x256 image.

Couldn't you do something about the 256x256 images, so that they are saved as PNG instead of BMP? (Vista and 7 can only read 256x256 PNG icos I believe)

Thank you,

I think this guy gave me a donation (or someone did), so I'll look into this.

Share this post


Link to post
Share on other sites

I think this guy gave me a donation (or someone did), so I'll look into this.

When I try to download the IcoCur.dll, it either stalls immediately or stall halfway through the download. I have no problems downloading other zips and dlls from this site.

post-75724-127471967967_thumb.png

Share this post


Link to post
Share on other sites

When I try to download the IcoCur.dll, it either stalls immediately or stall halfway through the download. I have no problems downloading other zips and dlls from this site.

Works fine for me. Try clearing your browser cache. Then try a different browser.

And what's wrong with your progress bar?

Share this post


Link to post
Share on other sites

I'm trying to install this plugin but i can't load a .ico file.. I save the dll into the effect folder but when i load a ico file give me an error "The image file is not recognized and cannot be opened."

Share this post


Link to post
Share on other sites

Can not get this to work.

Just downloaded "Paint.NET v3.5.6 (Final Release build 3.56.3972.42619)"

I've got MS .NET Framework 4 installed.

Saved the DLL to the FileType folder.

OS is XP profesional.

Even restarted the pc BUT the option to Save as Icon or Cursor does not come up!

Please help.

XP proffesional.bmp

Share this post


Link to post
Share on other sites

You are looking in the right place for the file extensions?

Yes I did.

Thanks for all for trying to help.

Solved by installing all versions of .Net and SP(s). Then reinstall Paint.NET and is currently working.

Wonder if it did not have something to do with just having NET 4 installed? = fugue.game.png

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.