You need to know what MIME type for the file, but they are pretty easy to discover. The most common ones I have used:
- image/gif
- image/x-icon
- image/vnd.microsoft.icon
- image/png
- image/jpeg
##### # # Base64.ps1 # Converts a file to or from base 64 # # Useful for generating data protocol image addresses: # In CSS: # background: #ff url('data:image/gif;base64,<Base64String>') # # In HTML: # <img src="data:image/gif;base64,<Base64String>" alt="X"> # # Usage (encode): # .\base64.ps1 favicon.ico favicon.b64 -encode # # Usage (encode & copy to clipboard): # .\base64.ps1 favicon.ico -encode -SetClipboard # # Usage (decode): # .\base64.ps1 favicon.b64 favicon.ico -decode # # ##### param ( [string] $source = $(Throw 'source: required parameter'), [string] $destination = "", [switch] $encode, [switch] $decode, [switch] $SetClipboard ) function Main { $file = Get-Item($source); if ($encode) { $bytes = get-content -encoding byte $file.Fullname $result = [System.Convert]::ToBase64String($bytes); if ($SetClipboard) {Set-Clipboard $result;} if ($destination.length -eq 0) { return $result; } else { set-content -encoding UTF8 -Path ".\$destination" -Value $result; } } elseif ($decode) { $bytes = get-content -encoding UTF8 $file.Fullname; [System.Convert]::FromBase64String($bytes) | set-content -encoding Byte -Path ".\$destination"; } else { Write-Host("The encode or decode switch is required."); } } . Main
For more information on Data URIs, refer to RFC2397 or the Wiki page for the Data URI Scheme for examples on how to use them.
No comments:
Post a Comment