Private/Show-DLLPickleLogo.ps1
|
#!/usr/bin/env pwsh # Auto-generated by PX2PS 2025.12.29 # Source: DLLPickle.px (39x9) # Generated: 2026-02-01 20:13:01 [CmdletBinding()] [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingWriteHost', '', Justification = 'This function is specifically designed to render a colorful ASCII art logo using ANSI escape codes, which requires Write-Host for proper color rendering.')] param () # Quit if running in the PowerShell ISE. if ($Host.Name -eq 'Windows PowerShell ISE Host') { return } # Enable Virtual Terminal Processing for ANSI colors (Windows PowerShell 5.1 compatibility) if ($PSVersionTable.PSVersion.Major -le 5 -and $env:OS -eq 'Windows_NT') { try { Add-Type -TypeDefinition @' using System; using System.Runtime.InteropServices; public class VTConsole { [DllImport("kernel32.dll", SetLastError = true)] public static extern IntPtr GetStdHandle(int nStdHandle); [DllImport("kernel32.dll", SetLastError = true)] public static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode); [DllImport("kernel32.dll", SetLastError = true)] public static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode); public static void EnableVT() { IntPtr handle = GetStdHandle(-11); uint mode; GetConsoleMode(handle, out mode); SetConsoleMode(handle, mode | 0x4); } } '@ -ErrorAction SilentlyContinue [VTConsole]::EnableVT() } catch { Write-Verbose "Failed to enable Virtual Terminal Processing: $_. This may affect color rendering, but the logo will still be displayed. If you are using Windows PowerShell, consider upgrading to PowerShell 7 or later for improved ANSI support." # VT processing may already be enabled or not available } } $ESC = [char]27 $LowerHalfBlock = [char]0x2584 function Get-TrueColorFg { param([int]$R, [int]$G, [int]$B) return "$ESC[38;2;${R};${G};${B}m" } function Get-TrueColorBg { param([int]$R, [int]$G, [int]$B) return "$ESC[48;2;${R};${G};${B}m" } $width = 39 $height = 9 $pixels = @( @(31, 175, 28, 255), @(35, 177, 28, 255), @(40, 180, 29, 255), @(45, 182, 30, 255), @(50, 185, 31, 255), @(55, 187, 32, 255), @(60, 190, 32, 255), @(65, 192, 33, 255), @(70, 195, 34, 255), @(75, 197, 35, 255), @(80, 200, 36, 255), @(85, 202, 36, 255), @(90, 205, 37, 255), @(95, 207, 38, 255), @(100, 209, 39, 255), @(105, 212, 39, 255), @(110, 215, 40, 255), @(115, 217, 41, 255), @(120, 219, 42, 255), @(125, 222, 43, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(63, 179, 41, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(31, 175, 28, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(31, 175, 28, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(0, 0, 0, 255), @(130, 225, 44, 255), @(31, 175, 28, 255), @(35, 177, 28, 255), @(40, 180, 29, 255), @(45, 182, 30, 255), @(50, 185, 31, 255), @(55, 187, 32, 255), @(60, 190, 32, 255), @(65, 192, 33, 255), @(70, 195, 34, 255), @(75, 197, 35, 255), @(80, 200, 36, 255), @(85, 202, 36, 255), @(90, 205, 37, 255), @(95, 207, 38, 255), @(100, 209, 39, 255), @(105, 212, 39, 255), @(110, 215, 40, 255), @(115, 217, 41, 255), @(120, 219, 42, 255), @(125, 222, 43, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255), @(130, 225, 44, 255) ) $oddHeight = ($height % 2) -eq 1 $startY = if ($oddHeight) { -1 } else { 0 } $endY = if ($oddHeight) { $height - 1 } else { $height } for ($y = $startY; $y -lt $endY; $y += 2) { $line = '' for ($x = 0; $x -lt $width; $x++) { $topY = $y $bottomY = $y + 1 if ($topY -lt 0) { $topPixel = $null } else { $topIdx = ($topY * $width) + $x $topPixel = if ($topIdx -lt $pixels.Count) { $pixels[$topIdx] } else { @(0, 0, 0, 0) } } $bottomIdx = ($bottomY * $width) + $x $bottomPixel = if ($bottomIdx -lt $pixels.Count) { $pixels[$bottomIdx] } else { @(0, 0, 0, 0) } $botR = if ($bottomPixel[3] -lt 32) { 0 } else { $bottomPixel[0] } $botG = if ($bottomPixel[3] -lt 32) { 0 } else { $bottomPixel[1] } $botB = if ($bottomPixel[3] -lt 32) { 0 } else { $bottomPixel[2] } if ($null -eq $topPixel) { $fg = Get-TrueColorFg -R $botR -G $botG -B $botB $line += "${fg}$LowerHalfBlock" } else { $topR = if ($topPixel[3] -lt 32) { 0 } else { $topPixel[0] } $topG = if ($topPixel[3] -lt 32) { 0 } else { $topPixel[1] } $topB = if ($topPixel[3] -lt 32) { 0 } else { $topPixel[2] } $bg = Get-TrueColorBg -R $topR -G $topG -B $topB $fg = Get-TrueColorFg -R $botR -G $botG -B $botB $line += "${bg}${fg}$LowerHalfBlock" } } $line += "$ESC[0m$ESC[K" Write-Host $line } Write-Host '' |