Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Re: copyprotection of images
gaekwad wrote:
Also, make a
div
the same size as the image, set the image as the background and stretch a 1px transparent GIF over it if you want to be sneaky.
That is actually not a great idea, if you care about performance. Background images load with a much lower priority, and secondly, more and more, browsers use some preloading techniques & heuristics to attempt to fetch content images faster (matters on mobile devices even more) – that is images referenced in an img
element.
The trick illustrated by Pat64 is probably the less annoying one (might still be a little disturbing for those who use assistive technologies, this could be mitigated by using aria-hidden=true
for the transparent overlay image).
Hmm come to think of it, Pat64’s technique could be improved by using an empty span, sized to and overlaying the image, with a transparent background (background: rgba(0,0,0,0)
). One less network call.
Where is that emoji for a solar powered submarine when you need it ?
Sand space – admin theme for Textpattern
Offline
Re: copyprotection of images
Hi Philippe :)
A very interesting point of view. aria-hidden="true" role="presentation"
are still used (my primary attempt to leave alt
text attributes empty), but changing transparent 1×1px gif by a span
is a good, clever solution. I changed the markup of the website I mentioned above. Thanks ;)
Cheers,
Patrick.
Github | CodePen | Codier | Simplr theme | Wait Me: a maintenance theme | [\a mi.ni.ma]: a “Low Tech” simple Blog theme.
Offline
#15 2013-11-18 10:39:18
- Gallex
- Member
- Registered: 2006-10-08
- Posts: 1,308
Re: copyprotection of images
i guess, those last solutions won’t protect for steeling if user chooses “save page as…” from browser’s menu?
Offline
Re: copyprotection of images
Gallex wrote:
i guess, those last solutions won’t protect for steeling if user chooses “save page as…” from browser’s menu?
No, indeed. But all those no-right-click js solutions won’t protect your images either in that case. As has already been noted, if you don’t want someone to ‘steel’ your images, don’t put them on a public server.
Where is that emoji for a solar powered submarine when you need it ?
Sand space – admin theme for Textpattern
Offline
Re: copyprotection of images
Gallex wrote:
i guess, those last solutions won’t protect for steeling if user chooses “save page as…” from browser’s menu?
That’s only an idea, but you can try to:
- encode your images, using www.freeformatter.com/base64-encoder.html, for example, and store encoded strings on your server;
- create image tags with empty
src
attribute; - set
img {pointer-events: none}
rule in your css; - on page load, load encoded images with jQuery ajax:
$.ajax({
url : 'BASE64_IMAGE_REST_URL',
processData : false,
}).always(function(b64data){
$("#IMAGE_ID").attr("src", "data:image/png;base64,"+b64data);
});
Due to ajax same-origin policy, a user shouldn’t be able to load image strings from a local copy.
Edit: alternatively, you can load just image sources from your server.
Last edited by etc (2013-11-18 15:53:23)
Offline
Re: copyprotection of images
phiw13 wrote:
That is actually not a great idea, if you care about performance. Background images load with a much lower priority, and secondly, more and more, browsers use some preloading techniques & heuristics to attempt to fetch content images faster (matters on mobile devices even more) – that is images referenced in an
img
element.
I respectfully stand corrected. Thanks for the info, Philippe.
Offline
Re: copyprotection of images
Post lower quality copies ? Use Irfanview to lower the color depth ?
Offline
#20 2013-11-19 07:58:57
- Gallex
- Member
- Registered: 2006-10-08
- Posts: 1,308
Re: copyprotection of images
thank’s guys for a lot of ideas. went for this ‘disable right click’ easy solution
<script type="text/javascript">
$('body').on('contextmenu', 'img', function(e){ return false; });
</script>
…which saticfied my client
Offline
Re: copyprotection of images
etc wrote:
That’s only an idea, but you can try to:
That doesn’t do anything since browsers save the current document state as stored in the memory. The saved page will include the images as they were loaded. It doesn’t matter when a node is added to the document.
Offline
Offline
Re: copyprotection of images
etc wrote:
Yes and no, try to catch the cat.
It can be done in firefox when pressing Command+i, going to media (the location and type state that it is a png image) and save the image as cat.png. Admittedly not many people would look there though:) I think that it is a cool method and it will deter the average surfer from downloading it.
Yiannis
——————————
NeMe | hblack.art | EMAP | A Sea change | Toolkit of Care
I do my best editing after I click on the submit button.
Offline
Re: copyprotection of images
etc wrote:
Yes and no, try to catch the cat.
Downloaded page contains what is in the memory, so, when downloaded, you get image you loaded with Ajax rather than the placeholder you used. The page source contains:
<img id="test" src="data:image/png;base64,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">
Which is the cat. Chrome, Firefox etc. just dump what is in memory to your drive. Adding something on later event to the document body doesn’t change that. This is one of the reasons why you shouldn’t mix attributes, internal mappins and properties in JavaScript; you get document presentation that doesn’t match what you have in memory when pulling document from memory.
You are better off just using that above base64 encoded image in the document. Saves you HTTP requests too. If you want to do that attribute replacement thing you are doing (that use document state-faults), you can do it without Ajax request. Just assign an attribute to the document, like so:
$('img.fetched').remove();
$('img').addClass('fetched');
Which causes the document in memory contain that particular class, which makes the above statement remove the images with the class.
Last edited by Gocom (2013-11-19 14:26:54)
Offline