Oh no! Where's the JavaScript?
Your Web browser does not have JavaScript enabled or does not support JavaScript. Please enable JavaScript on your Web browser to properly view this Web site, or upgrade to a Web browser that does support JavaScript.

Icon Tools

Last updated on 5 months ago
M
miker1264Software Dev
Posted 10 months ago
In the sample code provided DecodeBytes is my decoder algorithm that I wrote yesterday based on my DecodeRLE that I wrote at the same time.

It's astonishing to me that it works beautifully. It decodes every byte in the image data correctly. The IFF Icon Image Data in the IMAG chunks are stored as a "bitstream" of data not a bytestream.

It's just that it currently writes 2 extra bytes to the output buffer. For one of my test icons the first image has 1932 bytes but DecodeBytes writes 1934 bytes. It has an index/offset issue.

It's not a serious issue though for saving ILBM images. The chunky buffer size is still only 1932 bytes. The extra bytes are unused. But it's bothersome that it writes extra data. I will fix that.

Other than that it works great.
Edited by miker1264 on 25-11-2023 21:39, 10 months ago
M
miker1264Software Dev
Posted 10 months ago
After thinking about it I believe the error that writes extra bytes at the end of the output buffer is caused by programmer error.

The main while loop conditional statement is:
while ( out <= bytes ) which causes an error. In this case out is the index counter for the output buffer and bytes is the total size of unpacked data in bytes which is equal to width * height.

If you consider while ( out < bytes ) the first time the condition is NOT true is when out is exactly equal to bytes which is exactly when we want to drop out of the while loop.

But for while ( out <= bytes ) the first time it is false is when out is at least one more than bytes. That is the problem. It forces to read an extra byte from the input buffer that isn't really there.

So it should be while ( out < bytes ). I'll try that tomorrow to see what effect it has on the output
M
miker1264Software Dev
Posted 10 months ago
The change for the while statement fixed it so that now it reads all the input byte array and there are no extra bytes in the output array.

So for the test icon with the first image size of 1932 bytes now out matches bytes. Nice!
Edited by miker1264 on 26-11-2023 14:55, 10 months ago
M
miker1264Software Dev
Posted 10 months ago
Here is the DecodeRLE & DecodeBytes algorithms that I wrote recently to decode the image data for IMAG chunks for Glow Icon Format.

I have included the code snippets as well as a documentation in PDF format to help explain it.

Hopefully I can do the same for the Encoder part when I have finished it.

The image data decoder and RLE decoder are working as written in my test program. So these are working samples.

Just for your information the original inventor of NewIcon format was Phil Vedovatti. And the one responsible for designing the Glow Icons used with Amiga OS 3.5/3.9 was Mat Chaput. I'm not sure if he was involved in the programming as far as the storage format for the image data. From his blog site he seems more of an artist than a programmer though he could be both.

Although the developers working on Amiga OS 3.5/3.9 including Olaf Barthel and others surely knew and understood the IFF Icon Image Data Storage Format they didn't provide documents. Maybe there were NDA's preventing that also.

But now you have the documentation. Enjoy!
Edited by miker1264 on 29-11-2023 15:42, 10 months ago
miker1264 attached the following file:
decodebytes_sample_code.zip [175.13kB / 142 Downloads]
M
miker1264Software Dev
Posted 10 months ago
The IFF Icon Image Data Decoder files have been uploaded to AROS Archives for reference.
AMIGASYSTEMAMIGASYSTEMDistro Maintainer
Posted 10 months ago
Sorry miker, HERE I found the source of TIFF Datatype, if I try to compile them I am prompted for "debug.h" and "methods.h", where can I find them?

On AROS in the Development folder there are numerous "debug.h" but they don't seem to be compatible.

TIFF Datatype is missing on AROS, but the MOS and OS4 versions exist!
M
miker1264Software Dev
Posted 10 months ago
AMIGASYSTEM

Are you sure it is the source for TIFF datatype?

I don't see it at the linked location you posted.

Leaving debug enabled is a bad habit of mine. In the #includes just add 2 slashes to disable it.

//#include "debug h"

It's a picture datatype. To compile it you need the Build system or Yannicks picture datatype creation tool.

If it's my TIFF datatype it has an issue.
AMIGASYSTEMAMIGASYSTEMDistro Maintainer
Posted 10 months ago
To find the source from the browser you have to use "Search", click HERE, now you should see it,
M
miker1264Software Dev
Posted 10 months ago
AMIGASYSTEM

The reference to TIFF datatype was something I wrote in the forums while working on the code. It doesn't use Which picture yet. I didn't get that far.

TIFF datatype works. I will post the AROS x86 version. It also requires Tiff Library.

But the source you linked to is for the old BMP datatype before I fixed it. I also added the Save BMP function.

I can post BMP datatype as well if you are interested. You will need the Build system. Ask deadwood. Smile

Here you will find the datatypes:
https://github.co.../datatypes
Edited by miker1264 on 02-12-2023 12:15, 10 months ago
AMIGASYSTEMAMIGASYSTEMDistro Maintainer
Posted 10 months ago
I don't know what the 'Build system' is! better wait for your publication Smile
M
miker1264Software Dev
Posted 10 months ago
I haven't released TIFF datatype because it has an issue with starting from MultiView. I think it is the way MultiView gets a datatype from a file. It doesn't use the standard method. It's specialized.

If you use a picture viewer that uses datatypes to load a Tiff image it should work just fine. It opens Tiff Library as needed.

But when opening a Tiff file directly in MultiView by double-click it fails to open Tiff Library and it hangs the system. I could use a test to see if Tiff Library is loaded. I'm not sure.

Tiff Library isn't a standard library which reside in "Libs" directory. It's a special external link library.

But I don't have much time to work on it. For 3 months I've been working on my IconPress program. Half the time was spent on writing the functions for Save Amiga Icon and testing it. The other half was spent researching the IFF Icon Image Data Storage Format so I could write an Encoder and Decoder for image bitstream data.

I'm also designing new colorful glow icons.
AMIGASYSTEMAMIGASYSTEMDistro Maintainer
Posted 10 months ago
If you want I can test your TIFF Datatypes, there are other viewers on AROS One that use Datatypes!

I am in the process of creating other Descriptors for XPM and XBM graphic formats, which will surely work!
M
miker1264Software Dev
Posted 10 months ago
AMIGASYSTEM

That's a nice offer for testing. Smile

Now that I think of it there are some datatypes that need updating and testing. I'll start a new topic for that.

Tiff datatype, Targa datatype, PCX datatype & Jpeg datatype need to be updated and tested. Info datatype, Ico datatype and Icns datatype need updates. We already have Webp and Heic.
A
Amiwell79Distro Maintainer
Posted 10 months ago
many thanks miker

regards
A
Amiwell79Distro Maintainer
Posted 10 months ago
where datatypes are available thank you
M
miker1264Software Dev
Posted 10 months ago
Someone has to update the datatypes then compile them based on the most recent sources.

Ico datatype and Icns datatype most likely need save functions. Targa datatype needs the Targa RLE to be completed (run length encoding). PCX datatype needs cleanup but it's working.

Tiff datatype needs to be finished as far as the Load and Save functions. Tiff Library will likely need to be made into a standard shared library.

You can find the datatypes here:
https://github.co...ch/classes

Targa and PCX can be found in contrib.
Edited by miker1264 on 04-12-2023 00:14, 10 months ago
A
Amiwell79Distro Maintainer
Posted 10 months ago
Thank you Miker
M
miker1264Software Dev
Posted 10 months ago
As far as the progress that I've made so far with IconPress and IconSplit it seems appropriate that I should give thanks to magorium for the assistance with research, help in understanding the IFF Icon Image Data Storage Format and at times for the moral support and inspiration to keep going when things were too complicated or didn't seem to be working as expected. Thanks!

There was certainly more bit shifting and masking involved with the Image Data Encoder and Decoder than I had ever done before. It has been a difficult task to finish "Save Amiga Icon".
M
miker1264Software Dev
Posted 10 months ago
The research, development & testing for IconPress is taking longer than expected. The Save Amiga Icon functions are very time consuming. But it is coming along nicely. It has a new expanded user interface as well.

I had wondered while using the simple user interface how to allow saving AROS ARGB or OS4 ARGB? How can we choose the icon type also?

So I decided to go with the expanded version. To use the new IconPress there is a main display area on the left "Preview Area". It is actually the drop zone as well. There are 2 smaller areas on the right for displaying icon images. To load the first image select "Normal" Image on top by clicking in the icon display area for the image. A red selection rectangle appears & the text border will turn white to indicate the image is selected.

When a image area on the right is selected just drop the image itself in the large preview area. The image will appear in the selected image display area. The large image will be drawn in the preview area that corresponds to the current Image that is selected. To load the next image, select it "Selected" Image, then drop the image.

Now you can choose the icon type before saving the icon. If you drop 2 PNG images Save Icon will save a PNG icon. If you drop 2 ILBM images Save Icon will save an Amiga Glow Icon. If you drop 2 PNG images then select Save ARGB you will be prompted to Select Icon Style: OS41 or AROS Icon with the ARGB chunks attached.

The simple user interface will be used for IconDrop & IconTint which only work with PNG. With IconDrop just drop 2 PNG images to save a new PNG icon. Select Icon Type if desired.

For IconTint drop 2 PNG images and change the glow border tint for the second image ( yellow, green or blue). Or drop an icon and do the same before saving the new icon. The title says "IconPress" but it's really IconTint instead.

By splitting IconPress both IconDrop & IconSplit will be available to use more quickly. There's less development time involved. Besides, then I can use IconDrop & IconTint to make a set of White Icons in the style of Ken's Icons. The White Icons will have a neon blue glow border just in time for Christmas! Smile
Edited by miker1264 on 06-12-2023 17:53, 10 months ago
miker1264 attached the following image:
iconpress_gui4_12-05-23.png icontint_simple_gui.png
M
miker1264Software Dev
Posted 10 months ago
Recently I contacted Ken Lester about one of my small Icon Tools to add a glow border to an existing icon image.

He provided some insight and wisdom about how he makes icons and Glow borders. So in a week or two or three I will write an icon app (IconGlow) that does just that. It will use a Glow Mask and a modified Gaussian Blur Effect to generate a Glow Border that I hope will be very close to the original.

He also gave me permission to release all my icons that are based on some of his including colored disks and colored drawers as well as some of my own. So I will post lots of icons.
You can view all discussion threads in this forum.
You cannot start a new discussion thread in this forum.
You cannot reply in this discussion thread.
You cannot start on a poll in this forum.
You cannot upload attachments in this forum.
You can download attachments in this forum.
Moderator: Administrator
Users who participated in discussion: amigamia, deadwood, AMIGASYSTEM, pixie, Amiwell79, miker1264
Sign In
Not a member yet? Click here to register.
Forgot Password?
Users Online Now
Guests Online 7
Members Online 0

Total Members: 259
Newest Member: jma
Member Polls
Should AROSWorld continue with AROS-Exec files (SMF based)?
Yes44 %
44% [12 Votes]
No26 %
26% [7 Votes]
Not sure30 %
30% [8 Votes]