truetype字体怎么转换成普通字体_如何将位图字体(.FON)转换为truetype字体(.TTF)?...

from PIL import Image

import svgwrite

import os

import argparse

def bmp_to_svg(filename, multiply =1):

img = Image.open(filename)

w, h = img.size

pixel_acc = img.load()

generated_paths = paths_gen(pixel_acc, w,h, multiply=multiply)

dwg = svgwrite.Drawing(profile='tiny')

for path in generated_paths:

options = path

kwoptions = {} #{"fill":"black"}

dwg.add(dwg.polygon(options, **kwoptions))

#clip_path = dwg.defs.add(dwg.clipPath())

#clip_path.add(dwg.Rect(insert=(0,0), size=((w*multiply)+1, (h*multiply)+1)))

return dwg

def paths_gen(pixel_acc, w, h, multiply = 1):

m = multiply

paths = []

for y in range(0,h):

for x in range(0,w):

pix = pixel_acc[x,y]

brightval = sum(pix) /3

if brightval < 128:

paths.append([

##top left

(x * m, y * m),

##top right

((x+1) * m, y * m),

##bottom right

((x+1) * m, (y+1) * m),

##bottom list

((x) * m, (y+1) * m),

##close back to top left

#(x, y),

])

return paths

def main():

parser = argparse.ArgumentParser(

description='Script to convert black and white images into vector art')

parser.add_argument("input_dir")

parser.add_argument("ouput_dir")

parser.add_argument("in_ext", default="bmp", help="file extension of images in input folder")

parser.add_argument("-m", "--multiply", default=1, type=int)

## TODO

#parser.add_argument("-u", "--union", store=True, help="unifies adjecent polgons")

#parser.add_argument("-s", "--simplify", store=True, help="removes points that are part of a straight line")

#parser.add_argument("-c", "--compress", store=True, help="same as '--union --simplify'")

args = parser.parse_args()

cdir = os.path.abspath(args.input_dir)

fn_gen = ( x for x in os.listdir(cdir)

if x.endswith('.'+args.in_ext)

)

for count, filename in enumerate(fn_gen):

full_filename = os.path.join(cdir, filename)

new_fn = "{}_.svg".format(filename)

new_fullfn = os.path.join(args.ouput_dir, new_fn)

svg = bmp_to_svg(full_filename, multiply=args.multiply)

print "Converted file: '{}'".format(full_filename)

svg.filename = new_fullfn

svg.save()

if __name__ == '__main__':

main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值