Saving images for web/email/other media with the best compression ratio and quality is a difficult task if you don’t have the right tools.
Choosing the right format then choosing the right parameters are the key factors of smaller files.
Previewing the resulting image and the projected filesize will help the user choose the best settings. This kind of image optimization software is often called “Save for web”.
GIMP users: A plugin for GIMP is available in the GIMP registry
RIOT key features:
- open multiple graphic file formats by looking first at the magic number (it does not need file extension to recognize format)including support for uncommon images types (up to 128 BPP, integer and floating point. EX: hdr images, 16 bit grayscale, etc). Adaptive logarithmic tone mapping algorithm (Drago) used for HDR images
- save and optimize JPEG, GIF and PNG with a simple, clean user interface
- works in dual view: (original – optimized image) or single view (optimized image). Automatic preview of resulting image
- in-place compare function (alternativelly display the original image over the optimized image to notice small pixel changes)
- compress files to desired filesize threshold
- fast processing (all is done in memory); see instant results including resulting filesize
- decide if you want to keep metadata (comments, IPTC, Adobe XMP, EXIF profiles, ICC profiles). Unsupported metadata is removed
- transfer metadata between image formats (destination format must support them)
- common tools: pan and zoom, rotate, flip
- resize image by using well known resample filters (ex: Lanczos3, Catmull Rom, Bicubic, and others)
- the compression and the results are comparable to those of commercial products.
Input image types
common bitmap images as well as Adobe Photoshop PSD files.
Optimization details
Known issues:
- You should be careful when using in-place compare not to press two mouse buttons at once.
- UseLatestCommonDialogs is ignored in the IrfanView plugin version.
Future plans:
- batch processing multiple images
- PNG crusher
- twain scanner support
- basic image processing (brightness, contrast, etc)
- jpeg smoothening
- define transparent regions (with variable transparency)
- crop function
- Adobe Photoshop Filter support (8BF) – add GML Matting plugin for object extraction.
- overlay image watermark
You can suggest new features and create polls for implementing them in the official forum.
Available as stand-alone executable (portable app) or dynamic link library for developers. The plugin is already included into the best image viewer worldwide (in my oppinion) – IrfanView. This software uses a modified version of FreeImage open source image library. See http://freeimage.sourceforge.net for details. FreeImage is used under the FIPL license version 1.0.



53 comments
Comments feed for this article
Trackback link
http://luci.criosweb.ro/riot/trackback/
July 25, 2008 at 11:32 am
Frank H
Hello,
I use Irfanview V4.20 that uses the Riot.dll to set .jpg file size. This is a great new feature in Irfanview. Unfortunately, this feature cannot be accessed via the command line. Is there a plan to give this option to the riot.dll in the future?
Thanks
Frank
July 25, 2008 at 11:57 am
admin
You should ask Irfan about this
I am just the author of the plugin and I cannot tell you if Irfan wants to add command line option for RIOT.
This was Irfan’s specific feature request, so I think he will include it for command line if many of you askes him. Compress to size can be used in batch mode now, but I don’t recommend processing large files with this function (>2 Mpixels).
September 3, 2008 at 10:34 pm
Jeroen
Is there a way to create a multi resize for several photos?
September 11, 2008 at 12:07 pm
Max
I use it as plugin in Irfanview but also using the latest riot.dll the Metadata is always discarded (i tried with several types of jpg images made with several kind of cameras using EXIF and IPTC). I tried opening images directly into the plugin but always the metadata is discarded and all checkboxes flagged and impossible to put out the flag.
Can you fix this, please?
Anyway, congratulations for the plugin, very very useful.
September 12, 2008 at 11:39 am
John
Save as button in the irfan view plugin doesn’t work. What could be the problem ?
September 14, 2008 at 6:20 pm
admin
Answers:
>Jeroen
>Is there a way to create a multi resize for several photos?
This tool was not initially designed to work in batch mode. The support for batch operations will be added in a future release because many users asked for this.
>Max
>metadata is discarded
Metadata is discarded when loading the DIB with IrfanView->Save for web. DIBs don’t have metadata. I am working with Irfan to release new versions of RIOT and IrfanView that can import metadata from files. In fact version 0.3.2 of RIOT is ready for this. Check the irfanview website for updated versions (probabaly 4.24 will include this).
>John
>Save as button in the irfan view plugin doesn’t work.
This problem is related to the incompatibility between RIOT 0.1.X and the Unicode plugin from IrfanView. Open/save dialogs don’t work if the Unicode plugin is enabled within IrfanView options. Disable the unicode plugin.
To use Unicode filenames you need to upgrade to RIOT version 0.2.X or newer
September 27, 2008 at 12:19 am
Amaury
Dear Lucian,
what a great program you made!! Hats off!
Your side-by-side-image-view is great of course. But it is only useful for significant reduction in quality. Actually minor differences CANNOT be seen side-by-side!
That’s why professional programs like Photoshop use an “in-place view”, where you click (on the image or a button next to the image) and the image changes from “original” to “optimized” as long as the mouse button is pressed. With the two images being exactly at the same location, you can actually see, which pixels change/move. This way you can adjust the quality slider gradually until you reach a position where you cannot (or nearly cannot) see pixels change, if you want to optimize your image but still want to keep the quality virtually unchanged to the human eye.
So therefore I’d suggest that, if you can, you would let the user click on a button (or into the image) and the image switches from “original” to “optimized” as long as the button is pressed.
I think your program already is capable of doing these things, so it would be a very minor programming effort I guess.
For any questions please e-mail me.
Thanks,
Amaury
September 27, 2008 at 10:36 am
admin
Amaury, very good suggestion about in-place compare. This is included in v.0.3.0
November 1, 2008 at 3:21 pm
MasviL
Well done, maybe I’ll leave Adobe Fireworks forever
… suggestion: add “sharpen color edges” feature, sometimes it can help a lot.
Thanx for effort
November 8, 2008 at 5:52 am
WVexposure
Greets, thank you for adding the option for EXIF in this version! It has really made a significant difference in my work flow.
On a side note, I submitted your program to http://www.majorgeeks.com for consideration, and it was posted as a link today! I did this since I believe others may find your work as useful as I have, if you happen to see a spike in traffic that could be the cause. If the submission was unacceptable I apologize.
November 13, 2008 at 9:03 pm
Alvaro
Very good! But, please consider this:
-count colors and auto-set bit-depth: sometimes you find 24-bit encoded images which actually contain just 100 colors or 13 so pallete reduction is obvious.
-reducing depth to 4 bit/pixel for 16 colors or less (it can be done manually in irfanview and compresses better than 8 bit).
-allowing non-dithered B&W 1 bit/pixel: very easy and useful.
-adding color dithering (but disable it by default because it tends to compress worse)
November 17, 2008 at 7:01 am
Arthur Hoffmann
Hello Lucian,
Thanks for this great plugin.
I did find the following issue:
With the version 0.1.7 plugin in Irfanview I can click on Save for Web… when I have a .pdf file loaded. This works. With version 0.2.0 of the plugin I get an error message: \\"Error loading file.\\"
Arthur.
November 25, 2008 at 5:21 am
Niha
Wow, the first time I search Google for \"reduce image size\" I found InfranView, and through its plugin I knew InfranView could do it ( without notice of RIOT ) but today when doing some more details search, I find out the true hero is not InfranView but RIOT, many thanks to Lucian !
But, as a developer, I want to try to use the FreeImage.dll and Riot.dll as well, is there API for these librarys ? Thanks
November 25, 2008 at 5:55 am
Amaury
Thanks for considering the in-place comparison, Lucian. Cool!
November 25, 2008 at 10:58 am
admin
>But, as a developer, I want to try to use the FreeImage.dll and Riot.dll as >well, is there API for these librarys ?
RIOT uses FreeImage. Details about FreeImage can be found at http://freeimage.sourceforge.net/
To use the RIOT plugin in your applications read here: http://luci.criosweb.ro/riot/dll-version/
API documentation can be found in a text file named “RIOT exported functions.txt” located in the DLL distribution archive
November 25, 2008 at 11:08 am
admin
Arthur Hoffmann has wrote:
>With the version 0.1.7 plugin in Irfanview I can click on Save for Web… >when I have a .pdf file loaded. This works. With version 0.2.0 of the plugin I >get an error message: \\"Error loading file.\\"
This was fixed in version 0.1.15 and 0.2.1.
Thanks for reporting this
December 14, 2008 at 2:53 pm
Mobile
A long time I using Irfanview but only today found riot plugin.
Riot the best extension for Irfanview! It\’s more power than Adobe Photoshop Save for Web…
Thank you!
March 26, 2009 at 12:45 am
oraficu_662
I think that the crop function is the first function to add in order to minimize significantly the size of images. Next, an automatic crop function is useful for graphic images.
March 26, 2009 at 10:33 am
admin
What do you mean by automatic crop ? The computer cannot guess what you want to keep or remove from the photo.
March 27, 2009 at 1:06 pm
GCS
I tried the Riot 0.2.1 program and was impressed at the simple design to compare and compress images. I did notice a problem and read through the other comments to see if others had the same problem. When I found out the 0.3.Beta release was available, I decided to see if it solved the problem. Sadly, it did not.
Bad Save Name:
Starting with a JPG source file, save the compressed version as a JPG file into a new directory. Then switching the output type to PNG file format, another save will display that the filetype will be PNG but the filename itself does not change and so it contains JPG as the last three characters of the filename. A save, prompts to replace the previous file. If saved, it replaces the output JPG file with one of the same name, except it is a PNG internal. Most programs know to change the extension to the selected filetype before saving. I hope this program will adopt that method of output filename.
I liked the idea that an \"in-place\" compare would be easier to use, and was excited to see it implemented. It was a bit tricky to find out how to get the in-place compare but it didn\’t take too much hunting to get to that.
In-Place Compare output image eventually fails to change when output is monochrome:
I started experimenting with the various compression and output choices. I switched to PNG output file and monochrome color. Then I switched back to GIF, then JPEG, then PNG again, trying different compression choices. Somehow I got to a mode where the before and after both had color, although the output was clearly set to Grayscale. It apparently is a failure to update the output image area properly.
March 27, 2009 at 1:07 pm
admin
Thank for reporting this.
>Bad Save Name
I confirm this. A fix will be available in the next version.
> It was a bit tricky to find out how to get the in-place compare
There is a hint when you put the mouseover the button. I discussed with the users the button behaviour and we all agreed the press and release method is the best approach.
>In-Place Compare output image eventually fails to change when output is monochrome
I cannot reproduce your bug. What do you mean by monochrome? Monochrome means usually black and white, while greyscale means usually 16 or more grey colors.
The image update is done using a fast method, that may fail in rare cases. From my tests the update method is quite relyable.
Are you using the extended DLL the Lite DLL or the standalone application ?
Try to provide exact steps to reproduce the bug.
March 27, 2009 at 10:29 pm
oraficu_662
The “Automatic Crop” function is well suited for images with a self-coloured frame (photo with a frame, screenshot of a graph) and is used to suppress automatically this kind of frame. Several image editors get it : http://www.xnview.com (Alt+Y), http://photofiltre.free.fr ,…
April 3, 2009 at 6:28 pm
Grolo
Reduced size of my website from 2,57MB to 953kB.
THX!!
April 9, 2009 at 5:47 pm
Sunny
When can we expect the Lite dll version to return? Has it been discontinued with the release of 0.3?
Also, since there is no dll currently available, can you at least put 0.3 back up until 0.3.1 is released? The only choice now is the ansi 0.1.15.
Thanks for the great program!
BTW, IrfanView has an \"Auto crop borders\" function (Ctrl+Shift+Y), so RIOT certainly could.
April 9, 2009 at 8:54 pm
admin
The Lite version will be available only from the IrfanView plugins package from now on. It hasn’t been discontinued but it will be released with less frequency, targetting very stable versions. Lite version is slower and memory consuming than the extended version, as it does not contain all optimizations – so here is a reason to use the extended version.
Version 0.3.2 is available now…
April 15, 2009 at 11:58 am
Aaron Peters
Alvaro made a suggestion that imo would really make RIOT better:
“-count colors and auto-set bit-depth: sometimes you find 24-bit encoded images which actually contain just 100 colors or 13 so pallete reduction is obvious.”
Keep up the good work,
Aaron
April 15, 2009 at 2:18 pm
admin
I’m thinking on some automatic pallete reductions, but I didn’t decided yet on how to integrate this. Suggestions are welcomed. It can be a preset in Color reduction called Automatic. Please use the forum for feature requests. Create a topic and a poll in the Feature requests category.
http://luci.criosweb.ro/riot/bbpress/forum.php?id=2
May 1, 2009 at 6:09 pm
Sunny
What has become of the MSI installer option? It seems you have quickly abandoned it for an EXE setup with 0.3. Will it return?
Appreciate all your efforts,
Sunny
May 1, 2009 at 6:45 pm
admin
Yes, the MSI installer is gone and will not return anytime soon. BTW: Do you have one good reason to use MSI instead of an exe ? MSI packages require additional libraries (Windows Installer) and I did not found any (free) decent setup software to create them. On the other hand EXEs can be run standalone and can be created with the powerfull (free) NSIS (NullSoft Scriptable Installer System)
May 1, 2009 at 9:03 pm
Sunny
EXE is preferable, but I was wondering about MSI after reading this:
http://www.vbforums.com/showpost.php?s=4b2196c983c7491a1c9c1f34badb4c49&p=3115321&postcount=3
Based on what you said about free options being non-existent, I take it you had to pay to produce the first MSI you released?
RIOT is a rather simple program comparatively, so I would imagine that you could find something usable here for free. Unless, nothing has really worked for you and your project.
http://www.installsite.org/pages/en/msi/authoring.htm
May 2, 2009 at 11:00 am
admin
EXEs can request admin elevation as well. In fact the possibility for a setup package to became obsolete in future MS versions is greater for MSI, because these files depend on additional libraries to run, that can refuse to run old installer
Microsoft only discourages package distribution by EXE because they have a SDK for this. I personally preffer having a standalone setup file, rather than relying on other libraries present on system. Did you asked the question what happens when you try to run a newer MSI with and older Windows Installer or when you have a corrupt Windows Installer ?
So what do you preffer? A setup program that always runs, or a setup program that *probably*/*usually* runs ?
NSIS installers are powerful and provide great flexibility. I don’t say MSI is not good, but I chosed NSIS and that works great.
The MSI installer was created using a free tool that does not provide enough features.
May 5, 2009 at 12:25 am
Sunny
From the standpoint of a developer, I understand reliability is paramount. I agree that software should be useful for as many systems as possible.
I am trying to determine though, if MSI is better for the user installing without administrative privileges, as this is convenient. Would a network install facilitate this? And would MSI make it smoother, especially since it supports Group Policy? I understand that the ZIP option is good, but the setup option is easy. Can EXE handle all this (including a silent option), or it doesn’t matter since your MSI tool is not powerful enough anyway?
May 5, 2009 at 9:38 am
admin
>if MSI is better for the user installing without administrative privileges
I think is wrong from the start to let unprivileged users install programs. He does not have privileges for a good reason, right ? I don’t think MSI packages can override security policies. If a MSI can be installed with a limited account, an exe can do it also – it depend on where/what you try to read/write/execute.
>Would a network install facilitate this?
Let’s think first about the purpose of the program then guess if network install is really needed for RIOT.
RIOT can be installed/uninstalled silently by running with the /S switch (case sensitive). You can pass this switch to the installer or the uninstaller.
If you bundle the Windows Installer the MSI size increases with a few megabytes (remember that RIOT itself is less than 1 MB). If you don’t bundle it (and it’s obvious you should not) then there is a risk to not run properly. Also the current installer is much faster and provides better compression.
I think this debate should be moved to the forum. This is not the place to discuss such things.
May 21, 2009 at 9:00 pm
Freesia
Hi there!
Lovely software you have, I use it everyday!
Suggestions:
Could you give us a…
1. Reopen command that opens the original file again, so we can easily resize and save the same file without going through the Open dialog over and over to fetch it. This is good when you want to make several versions of a file for the web!
2. Revert button that undos any selections we’ve made since starting the program, so we can use our defaults again if we want to discard our changes to the image. This is good when you want to work with several images, but don’t want to restart the program to get your defaults back (by not saving settings on exit). Also good if you made changes and don’t like them, or forgot what you did!
Hope you like…Bye!
May 21, 2009 at 9:33 pm
admin
Hello. Thanks for your suggestions. You can use the forum also to create feature suggestions other users can vote.
BTW Nice and clear explanations
1. Other people suggested this also. Good idea. This will be done.
2. Your problem will be solved in the future version when preset saving will be introduced. You wil be able to add/delete/modify settings presets. This way you will easily revert to any of your favourite settings.
May 22, 2009 at 11:46 pm
Soda
Could the Save dialog be hidden and simply show the Replace warning only (like in IrfanView when using its Save)? It helps save a click. THX!
RIOT is amazing!
May 22, 2009 at 11:54 pm
Soda
Me again!
Almost forgot. Making the Save dialog hidden would be an *option*, not the exclusive design, since some people might want to save an image in the same folder as the original, and would need to have that dialog to change the filename.
Soda out.
June 4, 2009 at 3:16 am
davyk
Riot rocks!!!
June 18, 2009 at 12:09 am
Sev
Hello,
Wonderful software! One of a kind.
I want to beg, beg, and plea some more for a BATCH conversion feature of either 1) file size (irfanview has this, I know) ***2) Save as % (e.g. 80%) quality***.
This is absolutely the most critical feature missing IMO and a thorough Google search shows a lot of users looking for this feature.
It’s a shame this cannot be done in Irfanview
(One can save to 80%, but not using RIOT ‘method’)
June 18, 2009 at 9:30 am
admin
Batch support is planned for a future version. Most probably 0.4
Thank you for your support
July 27, 2009 at 2:26 pm
Glassonionz
Great work, cant wait for batch in 4.0.
July 29, 2009 at 11:43 am
djpetzele
Gracias.
Muy buen producto, y de uso libre
exelente calidad de compresion, los felicito por su logro.
sigan asi, saludos.
September 3, 2009 at 12:07 pm
porentief
Hi – great concept. Looks like exactly what I’ve been searching for. I see a bug though, preventing me from actually saving the file: “Access violation at address 76B5633E in module’comdlg32.dll’. Read of address 6DCB16C8.”. Running Vista SP2 on a Dell Vostro 1710. I access Riot from IrfanView 4.25. Any idea? I’d be available for experiments …
September 3, 2009 at 12:14 pm
admin
comdlg32 access violation in the IrfanView plugin (Vista SP2) fixed in version 0.3.4
October 9, 2009 at 8:18 pm
Woolis
Thanks for fixing the Vista SP2/comdlg32.dll issue in v0.3.4 Beta.
RIOT is an excellent and extraordinarily useful tool, especially alongside IrfanView – Thank you for developing it and working with Irfan.
December 6, 2009 at 2:44 am
PhotoComix
Gimp version works fine but i will found more handy use from my viewer
Irfanview is a good viewer but i use Xnview any hope for a xnview version ?
I think the Xnview author will be happy to help for all technical details if you contact him by the forum
December 6, 2009 at 11:09 am
admin
The GIMP has a more flexible plug-in architecture, and that allows me to create such plug-in. On the other hand (as far as I know) XNView does not provide an easy method to create a RIOT plug-in. The plug-in SDK only allows image format add-ons.
The bottom line is: the author only can accomplish this easily with the exported functions from my dll.
I would be happy to see a RIOT XNView plug-in.
December 11, 2009 at 10:33 pm
dosdan
XnView already has a File | Export command which does some of the things RIOT does.
December 19, 2009 at 3:17 pm
Master Letch
this is a brilliant tool and I found it knocks alot of commercial plugins such as superpng out of the water… the only problem I have found (not a bug, just an issue) is that it all ways uses a threshold for transparency… where certain applications require a gradient. (such as video game engines, where the alpha is used as a height map)
do you have any fixes or workarounds?
December 24, 2009 at 4:46 pm
vYk
Hi,
I use (and abuse of) riot since several months but now I’m on mac os x snow leopard.
Are you planning to make an os x version?
Thanx for this beauty
vYk
December 24, 2009 at 7:33 pm
admin
There are no plans to create a native Mac Os build.
You can try to use Wine. RIOT runs fine with Wine in Linux (only small display problems of icons), so if you manage to install Wine on Mac, you have good chances to make it work.
http://wiki.winehq.org/MacOSX/Installing
Note that Wine on Mac is still experimental.
January 10, 2010 at 2:32 pm
Ola
I only have One wish: Batch processing.
If I could select one Input and Output folder. Press start. That would be heaven.
Today I use the Irefanview plugin on my Camera pictures, and shrink picture by picture. It’s a tedious task. But the compression is amazing.
If you could manage this feature I’ll be the first to spread the word to everyone I know. I could earn you an immortal spot along side Irfanview.
January 10, 2010 at 2:38 pm
admin
I am working on the next version of RIOT – 0.4
This version already includes the batch optimizer.
Other interesting features will be available in this version like
- basic image adjustments (brightness, contrast, gamma, invert)
- open plugin architecture for adding new image formats
- hdr & raw plugin package (HDR + OpenEXR + RAW camera images from all major manufacturers)
- advanced PNG optimizer (internal & external – optipng/pngout)
A beta is planned to be ready in less than two months. The beta will be available for the RIOT development group members (currently 38 members).
The official release is planned not sooner than april 2010 though.