Details and Options
With ResourceFunction["PhotoHiddenMessage"], one can hide short messages in a photo (automatically or by choosing) among the three main possible channels of the image. Also with ResourceFunction["PhotoHiddenMessage"], reveal the secret messages of a photo that hides the messages.
The function works great with the vast majority of image extensions: *.bmp, *.dib, *.jpg, *.jpeg, *.jpe, *.jfif, *.gif, *.tif, *.tiff, *.png.
It is possible to hide from one to three small messages in a photo via the arguments {text}, {text1,text2} or {text1,text2,text3}, with automatic choice of image channel made by ResourceFunction["PhotoHiddenMessage"]. The default for the function is: With only one message, the default channel is 3; with two messages, the default channels are 1 and 3; and with three messages, the three channels are occupied. This order was chosen by channel performance for most images: Best is 3, then 1 and finally 2, but may vary for each photo.
You can choose the positions (desired channels) where the messages will be hidden, the arguments are e.g. {1}, {2}, {2,3}, {1,3}, referring to channels 1, 2 and 3 of the image.
Optionally, you can change the default opacity with the "Opacity" argument for better function performance. The default opacity is 0.3.
Optionally, you can change the default text size with the "TextSize" argument to, for example, write more hidden secret messages in each photo. The default text size is 30.
Optionally, you can change the text font with the "TextFont" argument to handwritten or exotic fonts that best suit each purpose. The default font for messages is the "Courier" font.
ResourceFunction["PhotoHiddenMessage"] can also be used to reveal the secret messages of a photo that has hidden messages using the target image as the only argument for the function, generating images of the three main channels when evaluate.