Jump to: Board index » General » Fusion

Border/ Outline on a PNG image

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline

ResolveNoob

  • Posts: 24
  • Joined: Wed Jul 31, 2019 1:42 pm
  • Real Name: Tumelo Mogale

Border/ Outline on a PNG image

PostFri Mar 12, 2021 6:34 pm

Is there any way to create a border or outline on a PNG image with a transparency? Looking for a feature like the vegas effect in Aftereffects.
Offline
User avatar

GonshiRamushiyo

  • Posts: 38
  • Joined: Sun Feb 03, 2019 12:49 pm
  • Location: 日本
  • Real Name: 吉村真悟

Re: Border/ Outline on a PNG image and AE's Vegas-like effec

PostSun Mar 14, 2021 3:20 pm

There are many ways to draw an outline on a PNG with a transparency in past threads if you search, so this is just an example, but I hope it helps.
Also, this time I tried to create an AE's Vegas-like effect using path layout setting in Text+, but it's not very versatile because you need to adjust the settings depending on the font, and I think there are better ways to do this as well (such as converting the original PNG outline to SVG beforehand).

*When checking the code, please also check the following links to download the material and free font used in my comp.
https://www.pikpng.com/pngvi/TxiTiJ_wolf-png-logo-for-free-download-on-wolf-logo-png-hd-clipart/
https://www.google.com/get/noto/#sans-jpan

Code: Select all
{
   Tools = ordered() {
      Merge3 = Merge {
         NameSet = true,
         Inputs = {
            ApplyMaskInverted = Input { Value = 1, },
            Background = Input {
               SourceOp = "Glow1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "PipeRouter1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1155, 82.5 } },
      },
      Blur1 = Blur {
         Inputs = {
            Filter = Input { Value = FuID { "Gaussian" }, },
            XBlurSize = Input { Value = 4.19, },
            Input = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 825, -16.5 } },
      },
      Text1 = TextPlus {
         CtrlWZoom = false,
         Inputs = {
            Level4 = Input { Value = 1, },
            GlobalOut = Input { Value = 240, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            LayoutType = Input { Value = 3, },
            PositionOnPath = Input {
               SourceOp = "Text1Positiononpath",
               Source = "Value",
            },
            Path = Input {
               Value = Polyline {
                  Closed = true,
                  Points = {
                     { X = 0.103024350972159, Y = 0.346977604130564, LX = -0.01066109836844, LY = -0.0138950048476556, RX = 0.00931729808156589, RY = -0.00220792365487436 },
                     { X = 0.135443031787872, Y = 0.318897634744644, LX = -0.00248461889362392, LY = 0.0154554625901629, RX = 0.0144999266042142, RY = -0.0564128979543741 },
                     { X = 0.138607589806182, Y = 0.209786280989647, LX = -0.000633622134866618, LY = 0.00900891188593311, RX = 0.000951090312895975, RY = -0.0135227107024104 },
                     { X = 0.141772150993347, Y = 0.16929133665508, LX = -7.35818517227926e-10, LY = 0.0091418604502751, RX = 0.00506903048488438, RY = -0.0259010825878446 },
                     { X = 0.139873416816132, Y = 0.0984251946210861, LX = 0.00943530442903928, LY = 0.0154792214341821, RX = -0.0202943942766425, RY = -0.0332942540692069 },
                     { X = 0.0930379719485211, Y = -0.0230596178987548, LX = -2.89699264577337e-09, LY = 0.0595737048739582, RX = 2.03154704170316e-09, RY = -0.0417766983030676 },
                     { X = 0.126582277688799, Y = -0.133295833528109, LX = -0.00961117975310921, LY = 0.0138789143229107, RX = 0.0104298310066775, RY = -0.0150610783132314 },
                     { X = 0.0892405062913895, Y = -0.106299214065075, LX = 0.00833904517759532, LY = -0.0087732574346997, RX = 0.036319342793558, RY = -0.0555506816814197 },
                     { X = 0.181012660264969, Y = -0.302024751901627, LX = -0.00253164353250013, LY = 0.0719909961298693, RX = -0.0079911601083047, RY = 0.00676772932951664 },
                     { X = 0.14873418211937, Y = -0.254780650138855, LX = 0.00949367579025551, LY = -0.00112485711298321, RX = 0.00838116942061129, RY = -0.0350417147769589 },
                     { X = 0.141772150993347, Y = -0.349268853664398, LX = 0.0132911383351193, LY = 0.00674914408588284, RX = -0.0229251080136261, RY = 0.0769717599374118 },
                     { X = 0.0120253162458539, Y = -0.169291332364082, LX = -0.0196202533743992, LY = 0.00562430318147411, RX = 0.0444400531128433, RY = -0.0127390980808427 },
                     { X = 0.134177207946777, Y = -0.271653532981873, LX = 0.0107594864277899, LY = -0.0202474587411527, RX = -0.0182756451554629, RY = 0.0881862981635176 },
                     { X = 0.0056962026283145, Y = -0.0860517472028732, LX = 0.0120253165523652, LY = -3.67081443020112e-09, RX = 0.0059918040255873, RY = -0.0147730719292625 },
                     { X = 0.0360759491407419, Y = -0.141169860959053, LX = 0.010230391102678, LY = -0.00681835019342125, RX = -0.0211147639798419, RY = 0.00507369096376309 },
                     { X = -0.0240506324917078, Y = -0.0860517472028732, LX = 0.00816954399681369, LY = -0.0122509930667309, RX = 0.00992962916076884, RY = -0.0208563804130089 },
                     { X = 0.00759493624909391, Y = -0.145669296920233, LX = 0.0105585476163709, LY = -5.47740630629789e-09, RX = -0.0268929628353284, RY = -0.00663586035161284 },
                     { X = -0.0607594922184944, Y = -0.0759280100464821, LX = 0.0087120359801357, LY = -0.0221195809630981, RX = -0.00988464399376571, RY = 0.0250967952393717 },
                     { X = -0.0417721532285213, Y = -0.161417320370674, LX = 0.00949366955628878, LY = -0.0134983102469396, RX = -0.0186905507310099, RY = 0.0265746401807522 },
                     { X = -0.0829113945364952, Y = -0.0568053983151913, LX = -2.13143191984955e-09, LY = -0.0269966244119292, RX = -0.0121435245951342, RY = -0.0225446584721696 },
                     { X = -0.134810133712201, Y = -0.108548930704728, LX = -0.00446486511822097, LY = -0.0226722652128376, RX = 0.00344080673629588, RY = 0.015865212314856 },
                     { X = -0.10632911324501, Y = -0.0388076491653919, LX = -0.00956672378680101, LY = -0.0451097860466516, RX = -0.0230588446435723, RY = -0.0294292939220281 },
                     { X = -0.179113924503326, Y = -0.0691788494586945, LX = 0.00569620207895172, LY = -0.0292463410222492, RX = 0.0232967061891048, RY = 0.0169942881716372 },
                     { X = -0.126582279801369, Y = 0.0298087745904922, LX = -0.00316455828238138, LY = -0.0438695156232313, RX = -0.016633974669336, RY = 0.0131391981084622 },
                     { X = -0.172784805297852, Y = 0.0815523043274879, LX = -0.0012658179560795, LY = -0.0224971894857852, RX = 0.0261773444818986, RY = 0.0343876248892098 },
                     { X = -0.0854430347681046, Y = 0.159167602658272, LX = -0.0082278448946867, LY = 0.0123734519271134, RX = 0.026384701438349, RY = 0.104610039906919 },
                     { X = 0.0462025329470634, Y = 0.281777263760433, LX = -0.0482907888457911, LY = -0.0361373409677395, RX = 0.0232464164258735, RY = 0.0225356660380575 }
                  }
               },
            },
            CharacterSpacing = Input { Value = 1.2209, },
            Name1 = Input { Value = "Solid Fill", },
            Name2 = Input { Value = "Outline", },
            Name3 = Input { Value = "Shadow", },
            Name4 = Input { Value = "Zabuton", },
            StyledText = Input { Value = "●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ", },
            Font = Input { Value = "Noto Sans CJK JP", },
            Style = Input { Value = "Bold", },
            Size = Input { Value = 0.01559, },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Comments = Input { Value = "Font DL:\nhttps://www.google.com/get/noto/#sans-jpan", },
         },
         ViewInfo = OperatorInfo {
            Pos = { 715, -16.5 },
            Flags = {
               ShowPic = true
            }
         },
      },
      Text1Positiononpath = BezierSpline {
         SplineColor = { Red = 237, Green = 132, Blue = 220 },
         KeyFrames = {
            [0] = { 0, RH = { 80, 0.5 }, Flags = { Linear = true } },
            [240] = { 1.5, LH = { 160, 1 }, Flags = { Linear = true } }
         }
      },
      Merge2 = Merge {
         NameSet = true,
         Inputs = {
            Background = Input {
               SourceOp = "MatteControl1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Blur1",
               Source = "Output",
            },
            Operator = Input { Value = FuID { "Atop" }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1045, -16.5 } },
      },
      Glow1 = Glow {
         Inputs = {
            Blend = Input { Value = 0.2, },
            Filter = Input { Value = FuID { "Gaussian" }, },
            ApplyMode = Input { Value = 2, },
            High = Input { Value = 0.472, },
            Input = Input {
               SourceOp = "Merge2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1155, -16.5 } },
      },
      Background1 = Background {
         Inputs = {
            EffectMask = Input {
               SourceOp = "ErodeDilate1",
               Source = "Output",
            },
            GlobalOut = Input { Value = 240, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            Depth = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftGreen = Input { Value = 0.535, },
            TopLeftBlue = Input { Value = 0.528, },
            TopLeftAlpha = Input { Value = 0.142, },
         },
         ViewInfo = OperatorInfo { Pos = { 935, -82.5 } },
      },
      MatteControl1 = MatteControl {
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            ["Garbage.Matte"] = Input {
               SourceOp = "PipeRouter2",
               Source = "Output",
            },
            Background = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1045, -82.5 } },
      },
      ErodeDilate1 = ErodeDilate {
         Inputs = {
            Filter = Input { Value = 3, },
            XAmount = Input { Value = 0.0051, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Input = Input {
               SourceOp = "BrightnessContrast1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 825, -82.5 } },
      },
      BrightnessContrast1 = BrightnessContrast {
         Inputs = {
            Contrast = Input { Value = -1, },
            Brightness = Input { Value = 1, },
            PreDividePostMultiply = Input { Value = 1, },
            Input = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 715, -82.5 } },
      },
      PipeRouter1 = PipeRouter {
         Inputs = {
            Input = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
         },
         ViewInfo = PipeRouterInfo { Pos = { 605, 82.5 } },
      },
      Loader1 = Loader {
         Clips = {
            Clip {
               ID = "Clip1",
               Filename = "Comp:/PikPng.com_wolf-png_596262.png",
               FormatID = "PNGFormat",
               StartFrame = 596262,
               LengthSetManually = true,
               TrimIn = 0,
               TrimOut = 0,
               ExtendFirst = 0,
               ExtendLast = 0,
               Loop = 0,
               AspectMode = 0,
               Depth = 0,
               TimeCode = 0,
               GlobalStart = 0,
               GlobalEnd = 0
            }
         },
         CtrlWZoom = false,
         Inputs = {
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            ["Clip1.PNGFormat.PostMultiply"] = Input { Value = 1, },
            Comments = Input { Value = "Original File:\nhttps://www.pikpng.com/pngvi/TxiTiJ_wolf-png-logo-for-free-download-on-wolf-logo-png-hd-clipart/", },
         },
         ViewInfo = OperatorInfo {
            Pos = { 495, -115.5 },
            Flags = {
               ShowPic = true
            }
         },
      },
      Merge1 = Merge {
         NameSet = true,
         Inputs = {
            Background = Input {
               SourceOp = "Final_Rez",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Loader1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 605, -115.5 } },
      },
      PipeRouter2 = PipeRouter {
         Inputs = {
            Input = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
         },
         ViewInfo = PipeRouterInfo { Pos = { 1045, -115.5 } },
      },
      Final_Rez = Background {
         NameSet = true,
         Inputs = {
            GlobalOut = Input { Value = 240, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftAlpha = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 605, -148.5 } },
      }
   }
}

Return to Fusion

Who is online

Users browsing this forum: David Kohen, Hendrik Proosa, Travis Schmiesing and 14 guests