Back to the my main page, HERE.
GMask was written by Tsuyoshi Furumizo and can currently be downloaded (as well as with help, and translations in many languages). HERE.
FLMask was created by Inspirator group and is shareware (although the company has long since become defunct). It is available from HERE.
Both applications are Win32 only (There was a Win16 version of FLMask, but it has vanished), and have not been updated in nigh on 10 years. However they run fine on every windows system I have tried it on and luckily for Linux users they run fine via WINE.
Both applications are pretty much identical when it
comes to masking, however FLMask has many more options. As well as many
more image editing tools. It also saves masked images to JPEG better.
Without loss of quality or detail; a common issue when saving masked
images to JPEG due to the way the image compression algorighm works.
The GMask application main window. |
The FLMask application main window. Some toolbars are omitted. They are simply for normal image editing functions and not related to masking/unmasking images. |
The first 7 buttons are self explanitory so I won't explain them. For more detailed information on what the relevant masks do, see the below section.
|
For more detailed information on what the relevant masks do, see the below section.
|
Original |
Rotate RGB 1 press. Rotates (relative to the starting pixel value) 1 third anti-clockwise on the colour wheel. |
Rotate RGB 2 presses. Rotates (relative to the starting pixel value) 2 thirds anti-clockwise on the colour wheel. |
XOR 0x80 (sometimes called XOR128). |
Negative. Inverts each pixel's RGB value. |
Vertical glass. Splits the selected area into 8 pixel wide vertical columns then flips them on the vertical axis. The width of the columns (in pixels) can be changed in program settings, however this is not recommended. |
Horizontal glass. Splits the selected area into 8 pixel tall horizontal rows then flips them on the horizontal axis. The height of the rows (in pixels) can be changed in program settings, however this is not recommended. |
Win mask. Splits the selected area into 16 pixel wide vertical columns. Then splits those columns into 1 pixel wide strips. Rearranges them in the following order: 13, 9, 7, 16, 10, 14, 3, 12, 2, 5, 15, 8, 1, 6, 11, 4 Applying the WIN mask again restores the original state of the selected area. |
Meko (although + and - look different at close inspection, at a quick glance they look identical). Firstly the algorithm spilts the selected area into 16 × 16 pixel blocks. The processing for Meko is not as random as it appears, instead it has a set pattern that will (if you apply the same Meko mask over and over agian) eventually return the original image. However as the selected area grows so does the number of iterations needed to return to original. Meko uses a lookup table containing 9216 entries to calculate shift position, thus the maximum number of blocks a Meko mask can work with is 9216 or a square selection area of 1 536 × 1 536 After switching sometimes the program will apply the Negative mask also. This is an option in both programs. |
FL mask. The FL mask algorithm firstly splits the selection area into 8 × 8 pixel blocks. Then arranges the blocks in a uniform order and in a spiral pattern. Applying the same mask again returns the original. Sometimes the program will also apply the Negative mask along with this mask. This is an option in both programs. |
Q0 mask. The Q0 mask is actually a series of masks. It usually defaults to Horizontal and Vetical glasses as well as Negative. However both GMask and FLMask allow you to also select Flipping and XOR 0x80 as well. It is advised not to do this however as most people will have the default settings and not wish to guess which other settings you have applied. |
An example of a CP mask with the password GMASK. When you select CP mask you are asked for a password (or more) this password decides the pattern of block shifting. The CP algorithm splits the selected area into individual 8 × 8 pixel blocks. The password you choose must be only alphabetical characters and must be between 1 and 16 characters in length. It is not case sensitive. Once applied the algorithm switches the red and green channels and applies the Negative mask. It then arranges the block in accordnce to the password you have chosen, rotating some blocks 90° but not all blocks. Don't use this mask, it's annoying and not worth the effort to decode unless the password is given (then what is the point?) If you come across a CP masked file there is an old DOS (*.com) utility available HERE, that can decode them, but it is not 100% reliable. GMask also has some limited ability to guess the CP mask password. |
Horizontal and Vertical masks. This is a simple combination to spot. The order you apply the unmasking doesn't matter. This is how the default Q0 mask looks if you apply a Negative first. |
Meko- & FL masks. For this common mask combination watch out for both horizontal and vertical blocks of similar colours and pattern. |
FL & Meko- masks. For this common mask combination watch out for both horizontal and vertical blocks of 2. |
Meko+ & FL & WIN masks. If a WIN mask is used after using Meko or other pixel shifting masks then the lines appear very stark and ragged. This is a fairly sure sign that the WIN mask has been applied at the very end of masking. |
WIN & FL & Meko- masks. If a WIN mask is used before using Meko or other pixel shifting masks then the lines appear faint and quite smooth. This usually means that the WIN mask has been applied at the beginning or between masking stages. |
Meko+ & Horizontal flip & Meko+ masks Combining Flipping masks and Meko masks is generally annoying as you cannot see any discernible difference when applying Meko unmasks. This leads to pretty much only guesswork in applying the unmasks, which isn't fun. However, if the selection area is mis-sized and the Meko mask can't quite divide the area into 16 × 16 pixel sized blocks then flipping is acceptable. Notice the clean line at the bottom of the selection area, that is a sign that the Meko mask couldn't fit an even number of blocks over the whole selection area. The image above shows the result of applying a Meko mask then the Horizontal flip then another Meko mask. This leaves an unmistakable pattern of tall thin blocks. This is very likely to be a combination Meko and Flip masks. |
Meko+ & Vertical flip & Meko+ masks The image above shows the result of applying a Meko mask then the vertical flip then another Meko mask. Notice the clean line at the right of the selection area, that is a sign that the Meko mask couldn't fit an even number of blocks over the whole selection area. This leaves an unmistakable pattern of wide short blocks. This is very likely to be a combination Meko and Flip masks. |
Top half: Q0 & Bottom half: Meko+ & FL. Overall: M+ masks This is a classic combined set of masks. The mixture of small and large blocks are a clear indication that a mask has been used over 2 (or more) seperate masks. The top half of the selection area was treated with Q0 and the bottom half Meko+ and FL. Then the whole thing treated with Meko+ |
Top half: FL & Bottom half: Meko+ & WIN. Overall: M+ masks This is a classic combined set of masks. The mixture of blocks showing WIN masking and blocks showing none indicate 2 (or more) seperate masks. The top half of the selection area was treated with FL and the bottom half Meko+ and WIN. Then the whole thing treated with Meko+ |