BoltBait Posted July 5, 2007 Share Posted July 5, 2007 Steganography (version 3.0 Updated 2014-07-12) Alph Tech / STUART requested a plugin to detect hidden messages in existing graphics. Using the least significan bit of color information to encode hidden messages/images is called steganography. More information can be seen at Wikipedia here: https://en.wikipedia.org/wiki/Steganography The Idea My first thought was to devise a code for encoding text to the least significant bit of the target image. This would have worked well, but I saw on the Wiki article that this technique could be extended to images! Cool. So, my second thought was to encode a 1 bit image (black-and-white). I played around with CodeLab until I had something workable. Then I started wondering how many bits it would take to encode a color photograph... Once I had a working algorithm, I found Paint.NET user pleska's photo flood fill plugin source code. I started with his code and made the necessary changes. If there are any bugs in this plugin, of course, I blame pleska. I learned a couple of new things while coding this plugin. First, stay out of other people's namespace. Heh. And, second, I learned how to put multiple plugins into a single DLL file. EDIT: I completely rewrote the UI for v2.0 of this plugin. It is now for Paint.NET 4.0+ only. Also, I broke out the encode and decode effects to separate files. Only crazy people put more than one effect in a single dll file. The Effect DLL If you like it, you can download the precompiled effect here: Steganography30.zip Instructions for Use To use this plugin, you must have 2 image files. Then, follow these steps: 1. Open the graphic into which you wish to hide an image. It is best if this image has lots of detail and not much area that is a solid color. Somewhat darker images seem to work best. 2. Click the Effects > Steganography > ...Encode From File... You will see the following UI: 3. Click on the "Browse" button and select the image you wish to hide. You will see a loading bar while the image loads. This can take some time for large images. 4. Check the "Preview decoded image" check box. This will allow you to see the hidden image while you adjust the various controls. 5. Select the method (either Color or Black and White) for the encoding. 6. Adjust the various controls. When you are happy with how the decoded image will look, UNcheck the "Preview decoded image" check box. 7. Click the OK button to finalize the image. 8. Save your image in a 24-bit lossless format. THIS IS CRITICAL. Lossless formats include PNG and BMP. This will not work if you save as JPG or GIF! To view the hidden image 1. Open the graphic that contains the hidden image. 2. Click the Effects > Steganography > B&W Decoder to view a black and white hidden image. Or, click the Effects > Steganography > Color Decoder to view a color hidden image. Note: There's no way of knowing if a color image, a b&w image, or no image is hidden before running the decoder. Just try one and if it doesn't work just press Ctrl-Z to get back your original. Sample Images This image has a hidden Black & White image: To view the hidden image, right click on the image and pick "Save Image As" to save it to your computer. Then, open the image in Paint.NET and follow the steps above. This image has a hidden Color image: Enjoy 8) EDITS: Version 1.1 updated 2007-07-06: This version is not compatible with 1.0, sorry. Improved 1Bit images. Added Preview checkbox so you can see what the hidden image will look like when decoded. Compiled for release instead of debug. Version 2.0 updated 2014-07-09: Compiled for Paint.NET 4.0. Algorithm is the same, only the UI has changed. Version 3.0 updated 2014-07-12: Added Floyd-Steinberg dithering to hidden image. This dramatically improves the quality of the hidden image. 1 Quote Click to play: Download: BoltBait's Plugin Pack | CodeLab | and how about a Computer Dominos Game Link to comment Share on other sites More sharing options...
david.atwell Posted July 5, 2007 Share Posted July 5, 2007 Woah, BoltBait. Talk about your secret agenty stuff. Awesome work! Quote The Doctor: There was a goblin, or a trickster, or a warrior... A nameless, terrible thing, soaked in the blood of a billion galaxies. The most feared being in all the cosmos. And nothing could stop it, or hold it, or reason with it. One day it would just drop out of the sky and tear down your world.Amy: But how did it end up in there?The Doctor: You know fairy tales. A good wizard tricked it.River Song: I hate good wizards in fairy tales; they always turn out to be him. Link to comment Share on other sites More sharing options...
stefTACULAR Posted July 5, 2007 Share Posted July 5, 2007 This is really neat! I can see a game in the Overflow popping up from this... Quote Link to comment Share on other sites More sharing options...
MiguelPereira Posted July 5, 2007 Share Posted July 5, 2007 woooww wooooooowww WWOooOWWWW dude. that. is. awesome.... really woooow Quote [The stock on my sig is a photo I took not a render from Splatter] [My deviantART][My Gallery][My Space] Link to comment Share on other sites More sharing options...
The_Lionhearted Posted July 5, 2007 Share Posted July 5, 2007 Oooo...now this is cool. Quote My Gallery Link to comment Share on other sites More sharing options...
barkbark00 Posted July 5, 2007 Share Posted July 5, 2007 Tried it! This is awesome! Quote Take responsibility for your own intelligence. -Rick Brewster Link to comment Share on other sites More sharing options...
someone2016 Posted July 5, 2007 Share Posted July 5, 2007 I've always wanted this! Quote Link to comment Share on other sites More sharing options...
BoltBait Posted July 6, 2007 Author Share Posted July 6, 2007 Woah, BoltBait.Talk about your secret agenty stuff. Awesome work! Thanks! Heh. "Secret angenty stuff". I like that. Quote Click to play: Download: BoltBait's Plugin Pack | CodeLab | and how about a Computer Dominos Game Link to comment Share on other sites More sharing options...
david.atwell Posted July 6, 2007 Share Posted July 6, 2007 I'm honored :-) Quote The Doctor: There was a goblin, or a trickster, or a warrior... A nameless, terrible thing, soaked in the blood of a billion galaxies. The most feared being in all the cosmos. And nothing could stop it, or hold it, or reason with it. One day it would just drop out of the sky and tear down your world.Amy: But how did it end up in there?The Doctor: You know fairy tales. A good wizard tricked it.River Song: I hate good wizards in fairy tales; they always turn out to be him. Link to comment Share on other sites More sharing options...
Zeek Posted July 6, 2007 Share Posted July 6, 2007 Very interesting concept. Downloading and looking for those secret images in your post! Quote https://forums.getpaint.net/topic/2932-read-first-the-rules-yes-you-read-this-2013-12-21/#15 Hmmm? Link to comment Share on other sites More sharing options...
Yata Posted July 6, 2007 Share Posted July 6, 2007 Very impressed. Great job BB! Quote "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former" [ dA Paint.NET Chat :: Yata on dA ] Link to comment Share on other sites More sharing options...
drakaan Posted July 6, 2007 Share Posted July 6, 2007 Nice work, BoltBait. Now I just have to wait for the stenography plugin... Quote Link to comment Share on other sites More sharing options...
Ben_R_R Posted July 6, 2007 Share Posted July 6, 2007 Great, now I'm going to have to download every new image posted and check it for hidden messages ... In other words... Great Plugin!! Quote I'm finally on dA! Link to comment Share on other sites More sharing options...
barkbark00 Posted July 6, 2007 Share Posted July 6, 2007 I am totally going to spend the whole weekend embedding stuff in my Sigs and Avs! Quote Take responsibility for your own intelligence. -Rick Brewster Link to comment Share on other sites More sharing options...
Eraesr Posted July 6, 2007 Share Posted July 6, 2007 awesome! Quote Link to comment Share on other sites More sharing options...
Hope Posted July 6, 2007 Share Posted July 6, 2007 very very cool! Quote Link to comment Share on other sites More sharing options...
Myrddin Posted July 6, 2007 Share Posted July 6, 2007 Blow me down, this is amazing BoltBait! So many ideas flooding my mind... Thanks. Quote How to Save Your Images under Different File Types My dA Gallery Link to comment Share on other sites More sharing options...
BoltBait Posted July 6, 2007 Author Share Posted July 6, 2007 I've been thinking of changing the 1 bit algorithm. It would not be compatible with the current implementation. Any objections? Quote Click to play: Download: BoltBait's Plugin Pack | CodeLab | and how about a Computer Dominos Game Link to comment Share on other sites More sharing options...
barkbark00 Posted July 6, 2007 Share Posted July 6, 2007 Nope... Quote Take responsibility for your own intelligence. -Rick Brewster Link to comment Share on other sites More sharing options...
BoltBait Posted July 6, 2007 Author Share Posted July 6, 2007 OK. Done! Go get the new version. Version 1.1 updated 2007-07-06 This version is not compatible with 1.0, sorry. - Improved 1Bit images. - Added Preview checkbox so you can see what the hidden image will look like when decoded. - Removed useless color mask option. - Compiled for release instead of debug. Enjoy. 8) Does this get the coveted "Most Useless Plugin" award? Quote Click to play: Download: BoltBait's Plugin Pack | CodeLab | and how about a Computer Dominos Game Link to comment Share on other sites More sharing options...
usedHONDA Posted July 6, 2007 Share Posted July 6, 2007 No, it gets the "Most Useful Tool for Pirates and Terrorists" award. You're prize is a free illegal copy of an iso that claims to be Vista Ultimate! Quote "The greatest thing about the Internet is that you can write anything you want and give it a false source." ~Ezra Pound twtr | dA | tmblr | yt | fb Link to comment Share on other sites More sharing options...
barkbark00 Posted July 6, 2007 Share Posted July 6, 2007 No warez talk... voice> Edit: Quote Take responsibility for your own intelligence. -Rick Brewster Link to comment Share on other sites More sharing options...
The_Lionhearted Posted July 6, 2007 Share Posted July 6, 2007 Now your sigs really can say something about you... Quote My Gallery Link to comment Share on other sites More sharing options...
mymetallicpotato Posted July 7, 2007 Share Posted July 7, 2007 so wait, what will I use this for? just putting images in images just to know they are there? on the flip side... Nice plugin! Quote www.mymetallicpotato.com Link to comment Share on other sites More sharing options...
Leif Posted July 7, 2007 Share Posted July 7, 2007 so wait, what will I use this for? Just for fun, i guess. But anyway, it can bee great fun. From now on you have to check every new signature for hidden messages. Quote My DA: http://leif-j.deviantart.com/ -------------- Some people seek justice so persistent, that they will do great injustice themselves. Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.