首頁>Club>
2
回覆列表
  • 1 # 使用者834195712159

    總結文字特效的特點是,每個文字獨立運動,都符合同一個運動規律,但每個文字之間保持一個固定的時間差。每個字的運動可以分成三個部分,字型大小的變化、文字位置的變化、文字顏色(透明度)的變化。

    # 把每個文字與它的三個運動結合為一個基本單位

    def newTextMotion(char, posFunc, sizeFunc, colorFunc):

    tm={}

    tm["char"]=char

    tm["posFunc"]= posFunc

    tm["sizeFunc"]= sizeFunc

    tm["colorFunc"]= colorFunc

    return tm

    1

    2

    3

    4

    5

    6

    7

    8

    文字動效的展示

    在任意一個時間點上,獲得文字的顯示效果。

    # 在指定的時間,計算文字的位置、大小、顏色等

    def showText(img, textMotion, time):

    char= textMotion["char"]

    pos= textMotion["posFunc"](time)

    size= textMotion["sizeFunc"](time)

    color= textMotion["colorFunc"](time)

    font= ImageFont.truetype(fontName, size)

    draw = ImageDraw.Draw(im=img)

    textSize= draw.textsize(text=char, font=font)

    tx= pos[0]- textSize[0]// 2

    ty= pos[1]- textSize[1]// 2

    draw.text(xy=(tx, ty), text=char, fill=color, font=font)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    針對一組文字,形成一個列表,獲取起每個時間點的顯示圖,作為一幀

    def getTextFrame(tmList, time):

    textImg= Image.new("RGBA", (1280, 720))

    for tm in tmList:

    showText(textImg, tm, time)

    return textImg

  • 中秋節和大豐收的關聯?
  • 多發傷名詞解釋是什麼?