Could someone paste
Nope, not in this forum :)
To recapitulate:
RewriteCond %{HTTP_USER_AGENT} !Googlebot [NC]
RewriteCond %{HTTP_USER_AGENT} !Googlebot-Image [NC]
Condition #2 is contained within Condition #1, since neither has a closing anchor.
The [NC] tag here is wrong, because it will permit incorrectly cased spoofers to get in.
RewriteCond %{HTTP_REFERER} !^$
ymmv but it is safer to express this as !^-?$
RewriteCond %{HTTP_REFERER} !^http://www.example.com [NC]
Here too the [NC] is wrong. Although domain names (unlike the rest of an IP) are case-insensitive, you've only got one canonical form. Anything else would be a forged referer.
RewriteRule ^(.*\.(png|gif|jpe?g))$ http://www.example.com/wp-content/plugins/watermarknewplugin/watermark.php?img=$1 [L]
The use of a full protocol-and-domain changes the intended rewrite into a redirect-- a 302 at that. In the case of images, this is not just unwanted but will break the rule.
Never use .* or .+ in non-final position. Find a formulation that will keep the Regular Expression from having to backtrack at the end. Here the simplest form is
^([^.]+\.(png|jpe?g|gif))
assuming that unlike, ahem, apache dot org, you have no URLs that contain periods anywhere other than immediately before extensions You have correctly left out NC. The form jpe?g is conventional but probably redundant unless you really use both. List only the extensions that actually occur on your site; anything else can get a 404 up front.
And, finally, make sure that the php at the end of your rewrite returns the appropriate 404 if the request was for an image file that doesn't exist. Not as crucial as for page requests, but still a good habit.
Whether rewriting from an image extension (jpg et cetera) to php will work at all is a whole nother question.