Enormator Posted August 18, 2007 Share Posted August 18, 2007 Awesome! I believe if you don't give us the source or the algorithm soon, I know, how I'll spend the next nights. Please share Suggestion: Add a kind of key number which is needed to decode. Quote :Link: website Link to comment Share on other sites More sharing options...
BoltBait Posted August 18, 2007 Author Share Posted August 18, 2007 Ugly, ugly code--I know. But, once something works, I rarely go back and clean it up. Sorry. For encoding the image: if (token.FullColor) { point.R = (byte)((((int)point.R + 18) / (int)36)); point.G = (byte)((((int)point.G + 18) / (int)36)); point.B = (byte)((((int)point.B + 18) / (int)36)); point.R = (byte)(((int)(CurrentPixel.R) & 248) + point.R); // 11111000 point.G = (byte)(((int)(CurrentPixel.G) & 248) + point.G); point.B = (byte)(((int)(CurrentPixel. & 248) + point.; } else { ColorBgra srcGrey = this.desaturateOp.Apply(point); iColor = srcGrey.R / 32; if (( iColor & 4) > 0 ) { point.B = (byte)(((int)(CurrentPixel. & 254) + 1); } else { point.B = (byte)(((int)(CurrentPixel. & 254) + 0); } if ((iColor & 2) > 0) { point.G = (byte)(((int)(CurrentPixel.G) & 254) + 1); } else { point.G = (byte)(((int)(CurrentPixel.G) & 254) + 0); } if ((iColor & 1) > 0) { point.R = (byte)(((int)(CurrentPixel.R) & 254) + 1); } else { point.R = (byte)(((int)(CurrentPixel.R) & 254) + 0); } } For decoding 1 bit images: for (int x = roi.Left; x { ColorBgra CurrentPixel = *srcPtr; GreyLevel = ((((int)CurrentPixel. & (int)1) * 4); GreyLevel += (((int)CurrentPixel.G) & (int)1) * 2; GreyLevel += (((int)CurrentPixel.R) & (int)1); CurrentPixel.R = (byte)(GreyLevel * 32); CurrentPixel.G = (byte)(GreyLevel * 32); CurrentPixel.B = (byte)(GreyLevel * 32); CurrentPixel.A = 255; *dstPtr = CurrentPixel; ++srcPtr; ++dstPtr; } For decoding color images: for (int x = roi.Left; x { ColorBgra CurrentPixel = *srcPtr; CurrentPixel.R = (byte)((((int)CurrentPixel.R) & (int)7) * 36); CurrentPixel.G = (byte)((((int)CurrentPixel.G) & (int)7) * 36); CurrentPixel.B = (byte)((((int)CurrentPixel. & (int)7) * 36); CurrentPixel.A = 255; *dstPtr = CurrentPixel; ++srcPtr; ++dstPtr; } 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...
taboo Posted September 20, 2007 Share Posted September 20, 2007 Thank you for the effect - It's kind of a fun plug-in, isn't it? I still haven't made a decent banner hiding an uncorrupted image . . . too many transparent pixels and too many blocks of solid color in my attempts so far. I'll keep working at it. Quote ... I should have been a pair of ragged claws ... - T.S. Eliot Taboo Monkey Blue Blog: Writing on Writing - Sudoku Tips and Tricks - The Greatest Maze Link to comment Share on other sites More sharing options...
Fisherman's Friend Posted September 22, 2007 Share Posted September 22, 2007 Ugly, ugly code--I know. But, once something works, I rarely go back and clean it up. Sorry.For encoding the image: if (token.FullColor) { point.R = (byte)((((int)point.R + 18) / (int)36)); point.G = (byte)((((int)point.G + 18) / (int)36)); point.B = (byte)((((int)point.B + 18) / (int)36)); point.R = (byte)(((int)(CurrentPixel.R) & 248) + point.R); // 11111000 point.G = (byte)(((int)(CurrentPixel.G) & 248) + point.G); point.B = (byte)(((int)(CurrentPixel. & 248) + point.; } else { ColorBgra srcGrey = this.desaturateOp.Apply(point); iColor = srcGrey.R / 32; if (( iColor & 4) > 0 ) { point.B = (byte)(((int)(CurrentPixel. & 254) + 1); } else { point.B = (byte)(((int)(CurrentPixel. & 254) + 0); } if ((iColor & 2) > 0) { point.G = (byte)(((int)(CurrentPixel.G) & 254) + 1); } else { point.G = (byte)(((int)(CurrentPixel.G) & 254) + 0); } if ((iColor & 1) > 0) { point.R = (byte)(((int)(CurrentPixel.R) & 254) + 1); } else { point.R = (byte)(((int)(CurrentPixel.R) & 254) + 0); } } Is this "codelab code"? I get errors at line 13 (wrong token) when I use it with codelab... How about moving all steganography effects to the new "advanced" submenu? Quote Link to comment Share on other sites More sharing options...
Myrddin Posted September 22, 2007 Share Posted September 22, 2007 I don't believe there is a need to move the entire set into the Advanced category for two reasons. Firstly, the Steganography plugin is unique by the fact it uses different 'effects' to do the different tasks, therefore having them all in one folder would both be logical and contain them in one location - its own submenu. And secondly, Steganography, or at least how BoltBait has created it, isn't 'advanced' in any way, not like ScriptLab and Code Lab is. Think of it this way, which would be more complicated to the average user, Code Lab or Steganography? If you're wondering why I keep associating Code Lab with the Advanced sub menu: I think CodeLab should go in the "Advanced" sub-Menu I agree. Next release of CodeLab will move it into the Advanced submenu. Quote How to Save Your Images under Different File Types My dA Gallery Link to comment Share on other sites More sharing options...
Fisherman's Friend Posted September 23, 2007 Share Posted September 23, 2007 Of course I know what's discussed about "advanced". That was only a new attempt to get rid of one submenu. I don't know why I'm so into this as time will bring me victory. When I reached the point that I only have 4/5 submenus but all plugins via 3.20, I have to block my access to my money as there is the massive danger that I would donate all of it because of my deep feeling of satisfaction... However, the reason for my post was mainly the code issue. Quote Link to comment Share on other sites More sharing options...
QuwenQ Posted October 7, 2007 Share Posted October 7, 2007 Omg, I love this. Especially for the sublimely-added-messages factor: Apocalypse! Colored image hidden. Quote Link to comment Share on other sites More sharing options...
david.atwell Posted October 8, 2007 Share Posted October 8, 2007 Ooh, the xxxx xxxxxxxx xx xxx xxxxxxxxxx! Very nice. :-) 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...
Blooper Posted October 14, 2007 Share Posted October 14, 2007 I noticed that using the toon filter shows the message, it's just unreadable. I think that Ink Sketch does that too. Quote http://synthastic.deviantart.com http://soundcloud.com/siderealenterprise Lockerz invites are available, PM me Link to comment Share on other sites More sharing options...
MiguelPereira Posted October 17, 2007 Share Posted October 17, 2007 ^^ Emboss does that too... and a few others i can't recall which ones now... 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...
janet Posted October 31, 2007 Share Posted October 31, 2007 Wow, totally awesome! Thank you Boltbait x) Quote Link to comment Share on other sites More sharing options...
insaneflame Posted December 3, 2007 Share Posted December 3, 2007 OMG! :shock: Quote Link to comment Share on other sites More sharing options...
MrRezister Posted December 18, 2007 Share Posted December 18, 2007 I'm getting some wonky results, what can I do to fix it? Awesome effect btw, I really enjoy it! Thanks for any help! Edited to add: Color photo hidden, forgot to mention.... Quote Link to comment Share on other sites More sharing options...
BoltBait Posted December 18, 2007 Author Share Posted December 18, 2007 I'm getting some wonky results, what can I do to fix it? Define "wonky". I can not "fix it" if you don't specifically tell me what is wrong. Include screenshots, etc. 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...
MrRezister Posted December 19, 2007 Share Posted December 19, 2007 I used the plug-in to hide a color photo in the picture that I attached to my last post. When I "reveal" the hidden picture, it does not come out the same way it went in. The colors are blurred and the detail is lost. It's still identifiable, but the quality is way down. Can I only hide one photo in another, or does the type of pictures matter at all? Thanks. Quote Link to comment Share on other sites More sharing options...
BoltBait Posted December 19, 2007 Author Share Posted December 19, 2007 I used the plug-in to hide a color photo in the picture that I attached to my last post. When I "reveal" the hidden picture, it does not come out the same way it went in. The colors are blurred and the detail is lost. It's still identifiable, but the quality is way down. Can I only hide one photo in another, or does the type of pictures matter at all? Thanks. The reason for this is that the picture you are hiding is being reduced from 24 bits to 3 bits. You have to expect a great deal of quality loss during that process. You can see what your picture will look like by using the Preview check box. Also, you can dither your picture before encoding it since dithering will yeild a higher quality than what I'm doing. So, basically, it is working as designed. 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...
MrRezister Posted December 19, 2007 Share Posted December 19, 2007 Even though it proves that I am clueless, I find that answer to be 100% satisfactory. Thanks so much for clearing that up, BB! Quote Link to comment Share on other sites More sharing options...
Ryan739 Posted December 23, 2007 Share Posted December 23, 2007 So do you guys think it would be possible to print out a steg'd picture, give it to a friend, he scans it and removes noise etc. (makes it look exactly like the pic) and STILL be able to recover the message? Quote Link to comment Share on other sites More sharing options...
david.atwell Posted December 23, 2007 Share Posted December 23, 2007 No. It's stored in the code of the image, not the pixels itself. It would have to be an absolutely perfect printout, and an absolutely perfect scan. Neither of those exist. But good idea! :-) 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...
Rick Brewster Posted December 23, 2007 Share Posted December 23, 2007 No. It's stored in the code of the image, not the pixels itself. An image is made up solely of pixels. There is no "code of the image." The steno is being done by manipulating the pixels. Quote The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
david.atwell Posted December 23, 2007 Share Posted December 23, 2007 No. It's stored in the code of the image, not the pixels itself. An image is made up solely of pixels. There is no "code of the image." The steno is being done by manipulating the pixels. Oh, wow...I can't believe I typed that. Just woke up from a nap...wow. Okay, yes. The stenography is achieved by hiding the secondary image in the least significant parts of the pixels that form the primary image, at the code level. It's not supposed to be visible in the pixels themselves until revealed. Since it's designed to be invisible to the naked eye, then, a printer (which always damages an image as it prints it) would completely destroy the secondary image. As I'm thinking about it more, the scanner wouldn't be able to scan it as individual pixels, anyway, and it would have to be very lucky to render the scan as the exact pixels that were printed. Sorry for the confusion. Rick, I swear I'm not an idiot... 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...
Ryan739 Posted December 23, 2007 Share Posted December 23, 2007 Yeah, I tried several distortions to the steg'd image. Even if you slightly change the brightness (Which WILL happen if you scan) the hidden image is destroyed. It WAS a nice thought though. UPDATE: OoOoOoOoO. I just tried this: I took an image and set the transparency ADJUSTMENT to about the first setting so it wasn't visible but technically barely opaque. Then I put this image on top of a white canvas. Then I ran the reveal tool and it came up. (kinda light, just use the levels tool to fix that) This method let's the image survive twist, oblique, ANY rotation and more. Sadly, noise still kills it. It's a start though. Sorry if I seem kind of obsessed. I'm truly fascinated with this steganography concept Thanks for listening Quote Link to comment Share on other sites More sharing options...
DRILL Posted January 15, 2008 Share Posted January 15, 2008 interesting Quote Link to comment Share on other sites More sharing options...
MiguelPereira Posted January 15, 2008 Share Posted January 15, 2008 It has already been posted, most of the effects like emboss, or edge detect, or similar effects that have as result to alter the image pixels end up revealing the steg'd image... 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...
david.atwell Posted January 15, 2008 Share Posted January 15, 2008 So don't encode any state secrets, and you should be fine. :-) You just need to realize, this isn't for any professional thing. It's just for fun. 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...
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.