Base64 Encode and Decode PowerShell functions.

function ConvertTo-Base64
{
<#
    .SYNOPSIS
        Function to convert an image to Base64

    .DESCRIPTION
        Function to convert an image to Base64

    .PARAMETER Path
        Specifies the path of the file

    .EXAMPLE
        ConvertTo-Base64 -Path "C:\images\PowerShellLogo.png"

    .NOTES
        Francois-Xavier Cat
        @lazywinadm
        www.lazywinadmin.com
        github.com/lazywinadmin
#>

    [CmdletBinding()]
    param
    (
        [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
        [ValidateScript({ Test-Path -Path $_ })]
        [String]$Path
    )
    Write-Verbose -Message "[ConvertTo-Base64] Converting image to Base64 $Path"
    [System.convert]::ToBase64String((Get-Content -Path $path -Encoding Byte))
}

function ConvertFrom-Base64
{
    <#
    .SYNOPSIS
        Converts the specified string, which encodes binary data as base-64
        digits, to an equivalent 8-bit unsigned integer array.

    .DESCRIPTION
        Converts the specified string, which encodes binary data as base-64
        digits, to an equivalent 8-bit unsigned integer array.

    .PARAMETER String
        Specifies the String to Convert

    .EXAMPLE
        ConvertFrom-Base64 -String $ImageBase64 |Out-File ImageTest.png

    .NOTES
        Francois-Xavier Cat
        @lazywinadm
        www.lazywinadmin.com
        github.com/lazywinadmin
#>
    [CmdletBinding()]
    param (
        [parameter(Mandatory = $true, ValueFromPipeline)]
        [String]$String
    )

    try
    {
        Write-Verbose -Message "[ConvertFrom-Base64] Converting String"
        [System.Text.Encoding]::Default.GetString([System.Convert]::FromBase64String($String))
    }
    catch
    {
        Write-Error -Message "[ConvertFrom-Base64] Something wrong happened"
        $Error[0].Exception.Message
    }
}