![]() |
![]() |
|
![]() |
floIcon version 2I have decided to rework floIcon from the ground up to provide a more stable, more memory friendly experience to all you icon fanatics out there. Also, this should ease some of the burdon on the server once complete. My plan is that floIcon2 should support Windows Vista icons despite the fact that I do not actually have a copy of Vista. Wish me luck on that. So, new support: DLL, Vista. New features: better memory management, new supported formats. Differences Between floIcon versions 1 and 2:Of course, this is what's planned, not what's actually implemented.
floIcon2 reads/writes directly to the icon fileThis has been done primarily to free RAM on the machine. At the moment, my website is doing fine on RAM, so this is not needed. However, when DLL support is added and people can create their icons in a DLL that can be packaged, there might be more use. Also, DLLs are a lot larger than individual files mainly because they are a collection of individual files. floIcon2 supports exporting DLL.This is probably the primary reason why floIcon is being rewritten. Icon files are great, but there are many reasons that one would want to get a collection of icons and not just a single one. When getting a collection, it is much easier to use a DLL, which can be used directly by Windows for each use, than an ICO file, of which you would need one file per actual icon. I might implement ICL if it's not too difficult, but that's an old format probably not needed. floIcon2 supports importing DLL, EXE, etc.Honestly, this is mainly coming about as a side effect of export. I have to be able to determine if I am correcly able to conquor the DLL format. Reading it is the only sure-fire way to do this. I might implement ICL import if I implement export. But, seeing as I don't have any ICL files, I don't honestly think either is very likely. floIcon2 supports Vista iconsMainly because it's so easily done. My understanding is that the Vista format is identical to XP except that it allows for the icon images to be in a PNG format. PHP can read PNG files, so it's a "no brainer" as my dad would say. floIcon2 is a static class, not a dynamic oneBecause floIcon2 reads directly from the icon file, there is no need to keep the file open or in memory. Actual image editing will be done elsewhere. Neither version of floIcon is intended (or capable) of being an image editor. This class is an icon file assembler meaning that it takes images and puts them into an icon file. In practice, floIcon never really was a logically dynamic class. Though it was possible to open an icon file and preform multiple actions on it, there was never a need. Occationally, someone might want to delete more than one image from a file, but the headers are easily readable, being very small and any process requiring simple replacement, addition or removal of an image would be quite light on the processing. floIcon2 will replace images of equal size & depth instead of appending (by default)There is NO reason that an icon would ever need to images of the same size and depth. Though it is quite possible and not even remotely breaking of the file, it is entirely useless. Icon files are used by the operating system (or other program) simply to have a collection of images representing the same idea so it can chose the best formated (size & depth) image of that idea to show you based on the conditions available. If you need more than one image at a specific size/depth, you probably need a collection of icons, namely a DLL, which floIcon2 will gladly create for you. Okay, after thinking about it for a while, I can see that even though I still don't see a need, I could see a want so I'll make it possible, yet not the default behavior. ResourcesThe two primary resources I'm consulting in this project are: Icons in Win32 and CodeProject: IconLib - Icons Unfolded (MultiIcon and Windows Vista supported). DevelopmentYes, this is still under development. But, you lucky bastard who found this page, get to see exactly what I'm up to, because I test on my website live! You can go to "Test Mode" to view this using the old floIcon library. $settings: Array
(
[icon file] => SyncCenter.dll_I03ea_0409.ico
)
|
|
|