Skip to content

Instantly share code, notes, and snippets.

@peterhry
Created September 7, 2014 17:14
Show Gist options
  • Save peterhry/afac4906f2b330509fc7 to your computer and use it in GitHub Desktop.
Save peterhry/afac4906f2b330509fc7 to your computer and use it in GitHub Desktop.
<svg preserveAspectRatio="xMinYMin" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 560 1388">
<defs>
<mask id="canTopMask">
<image width="560" height="1388" xlink:href="img/can-top-alpha.png"></image>
</mask>
</defs>
<image mask="url(#canTopMask)" id="canTop" width="560" height="1388" xlink:href="can-top.jpg"></image>
</svg>
@shshaw
Copy link

shshaw commented Sep 11, 2014

@Haprog Smart idea. Would be great to have a grunt or equivalent process to automate this:

  • Convert JPEG & PNG to Data URI
  • Generate SVG with proper viewbox and width/height attributes on image
  • Create a PNG fallback for browsers without SVG support?

@shshaw
Copy link

shshaw commented Sep 11, 2014

I wrote a basic tool to do this: http://codepen.io/shshaw/full/tKpdl

Works in the latest versions of Chrome, Firefox and Safari. Feel free to improve or adapt.

@mihnutzen
Copy link

you can use a Path instead of a png mask . just the inner path is required (outline of the image) . and this way you can save the extra request http://codepen.io/Mihnutzen/pen/AqDFf

@ctf0
Copy link

ctf0 commented Sep 14, 2014

am kinda new into this ,but cant we use the (css clip-path) instead ?

@peterhry
Copy link
Author

At this time IE doesn’t support CSS clip-path. The other benefit of using an alpha mask is that you can have translucent areas.

@ctf0
Copy link

ctf0 commented Sep 16, 2014

i just noticed that as mentioned in this article ,thanx for the headsup

@julia-r
Copy link

julia-r commented Nov 5, 2014

This works very well for me. But when I uses the jquery show() and hide() functions on it, the masking does not work sometimes. Does anyone have an idea why this might be? The same happens when I add and remove a class with "display: none".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment