1 changed files with 0 additions and 74 deletions
@ -1,74 +0,0 @@ |
|||||
#! /usr/bin/env python3 |
|
||||
|
|
||||
from PIL import Image, ImageDraw, ImageFont |
|
||||
import argparse |
|
||||
import sys |
|
||||
|
|
||||
def main(): |
|
||||
parser = argparse.ArgumentParser(description='Converts ASCII file to image image (Good for converting radare2 graphs)') |
|
||||
parser.add_argument('X', metavar='X Coord', default = 0, type=int, nargs='?',help='x coordinate for image') |
|
||||
parser.add_argument('Y', metavar='Y Coord', default = 0, type=int, nargs='?',help='y coordinate for image') |
|
||||
parser.add_argument('--ascii', metavar='ASCII File', default = "", nargs='?',help='ASCII file input') |
|
||||
parser.add_argument('--img', metavar='IMG Output File', default = "", nargs='?',help='IMG file output') |
|
||||
args = parser.parse_args() |
|
||||
|
|
||||
fontfile="/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf" |
|
||||
fontSize = 18 |
|
||||
xMultiplier = fontSize * 0.65 |
|
||||
yMultiplier = fontSize * 1.15 |
|
||||
startX = 10 |
|
||||
startY = 10 |
|
||||
|
|
||||
imgX = args.X |
|
||||
imgY = args.Y |
|
||||
asciiX=0 |
|
||||
asciiY=0 |
|
||||
fullString="" |
|
||||
asciiLines=[] |
|
||||
asciiLinesLength=[] |
|
||||
|
|
||||
if args.ascii!="": |
|
||||
#open file to read number of lines & line length |
|
||||
with open(args.ascii) as f: |
|
||||
for line in f: |
|
||||
asciiLines.append(line) |
|
||||
asciiLinesLength.append(len(line)) |
|
||||
|
|
||||
#reopen to read as whole |
|
||||
with open(args.ascii) as f: |
|
||||
fullString=f.read() |
|
||||
else: |
|
||||
fullString = sys.stdin.read() |
|
||||
asciiLines = fullString.split("\n") |
|
||||
for line in asciiLines: |
|
||||
asciiLinesLength.append(len(line)) |
|
||||
|
|
||||
#get text X & Y coords |
|
||||
asciiY = len(asciiLines) |
|
||||
asciiX = max(asciiLinesLength) |
|
||||
|
|
||||
#setup imgX and imgY if they are not set by user |
|
||||
if imgX==0: |
|
||||
imgX = int(asciiX * xMultiplier + (2 * startX)) |
|
||||
|
|
||||
if imgY==0: |
|
||||
imgY = int(asciiY * yMultiplier + (2 * startY)) |
|
||||
|
|
||||
# make a blank image for the text |
|
||||
txt = Image.new('RGB', (imgX, imgY), (255,255,255)) |
|
||||
|
|
||||
# get a font |
|
||||
fnt = ImageFont.truetype(fontfile, fontSize) |
|
||||
# get a drawing context |
|
||||
d = ImageDraw.Draw(txt) |
|
||||
|
|
||||
# draw text, full opacity |
|
||||
d.text((startX,startY), fullString, font=fnt, fill=(0,0,0)) |
|
||||
|
|
||||
if args.img=="": |
|
||||
txt.show() |
|
||||
else: |
|
||||
txt.save(args.img) |
|
||||
|
|
||||
if __name__ == "__main__": |
|
||||
main() |
|
Loading…
Reference in new issue