Advertisement
nanogyth

BigHalo

Apr 19th, 2012
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function ng_bighalo(
  2. \ clip clp,
  3. \ string text,
  4. \ float "x",
  5. \ float "y",
  6. \ int "first_frame",
  7. \ int "last_frame",
  8. \ string "font",
  9. \ float "size",
  10. \ int "text_color",
  11. \ int "halo_color",
  12. \ int "align",
  13. \ int "spc",
  14. \ int "lsp",
  15. \ float "font_width",
  16. \ float "font_angle",
  17. \ int "halo_radius",
  18. \ string "memo"
  19. \){
  20.  
  21. #Version 7
  22.  
  23.     x           = default(          x, -1)
  24.     first_frame = default(first_frame, 0)
  25.     last_frame  = default( last_frame, first_frame + 299)
  26.     font        = default(       font, "Ariel")
  27.     size        = default(       size, 18)
  28.     y           = default(          y, size)
  29.     text_color  = default( text_color, $20FFFFFF)
  30.     halo_color  = default( halo_color, $20000000)
  31.     align       = default(      align, 5)
  32.     spc         = default(        spc, 0)
  33.     lsp         = default(        lsp, 1)
  34.     font_width  = default( font_width, 0)
  35.     font_angle  = default( font_angle, 0)
  36.     halo_radius = default(halo_radius, 8)
  37.  
  38.     invis=BlankClip(clp, length=1, pixel_type="YV12")
  39.     text_mask=Subtitle(invis, text, x, y, 0, 0, font, size, $00FFFFFF,
  40. \                      $80808080, align, spc, lsp, font_width, font_angle)
  41.     halo_mask=mt_logic(text_mask,
  42. \                      text_mask.mt_expand(mode=mt_circle(halo_radius)),
  43. \                      mode="xor")
  44.  
  45.     hc=BlankClip(clp, length=1, color=halo_color)
  46.     tc=Subtitle(hc, text, x, y, 0, 0, font, size, text_color,
  47. \               $FF000000, align, spc, lsp, font_width, font_angle)
  48.  
  49.  
  50.     h_alpha=(halo_color >= 0) ? 255 - halo_color/$01000000
  51. \                             :  -(halo_color+1)/$01000000
  52.     t_alpha=(text_color >= 0) ? 255 - text_color/$01000000
  53. \                             :  -(text_color+1)/$01000000
  54.  
  55.     lut_str=string(h_alpha)+" x * 255 / "+string(t_alpha)+" y * 255 / max"
  56.     mm3=tc.Mask(mt_lutxy(halo_mask, text_mask, lut_str).ConvertToRGB32())
  57.  
  58.     mm4=Defined(memo) ? (
  59. \       Exist(memo+"0.bmp") ? ImageSource(memo+"0.bmp")
  60. \                        : mm3.ImageWriter(memo+"%d.bmp")
  61. \                   ) : mm3
  62.  
  63.     clp.ApplyRange(first_frame, last_frame, "Layer", mm4)
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement