Is Gaussian blur on objects supported in X8?

I see that drop shadows are now done with Gaussian blur but does X8 allow for the Gaussian blur effect on objects themselves (like Inkscape and other vector applications support)?

Also, can the drop shadows be modified if they are separated from their parent object? Are they an SVG object or are they still a bitmap object?

Parents
No Data
Reply
  • You know, I recently had a need for feathered vector objects and made a little macro that can do it. It's experimental and will probably crash and burn on unsupported objects, etc.

    Generally what it does is make a contour inside the object, convert that to a bitmap, make it black, then apply Gaussian blur to it, export that as an image which is then applied as a bitmap transparency map to the original shape, like this:

    For the time being you need to set the amount of feathering in mm in the code istelf, but in general it works (apart from needing plenty of cleanup work, like non-jpg mask, making sure the contour isn't too large, etc). If there's interest I can try to clean it up. For now if you are familar with macros you can play around with it:

    Sub Feather()

        Dim S As Shape
        Dim V As Shape
        Dim E As Effect

        Dim Gap As Double
        Dim DPI As Double
        Dim GBlur As Double

        Dim Filter As ExportFilter
       
        Dim BitWidth As Double
        Dim BitHeight As Double

        DPI = 72

        'Approximate feathering in mm
        Gap = 20
        Gap = ActiveDocument.ToUnits(Gap, cdrMillimeter)

        Set S = ActiveShape

        Set E = S.CreateContour(cdrContourInside, Gap, 1, , , , , , , cdrContourRoundCap, cdrContourCornerRound)

        If E.Type = cdrContour Then
            Set V = E.Separate.Shapes.First
        Else
            Set V = ActiveLayer.CreateRectangle(S.LeftX - Gap, S.TopY + Gap, S.RightX + Gap, S.BottomY - Gap)
            V.ConvertToCurves
        End If

        V.Fill.CopyAssign S.Fill
        V.Outline.CopyAssign S.Outline

        Set V = V.ConvertToBitmap(, , , True, DPI)
        V.ApplyEffectHSL 0, 0, -100

        GBlur = Gap * DPI * 48

        V.Bitmap.ApplyBitmapEffect "Gaussian Blur", "GaussianBlurEffect GaussianBlurRadius=" & GBlur & ",GaussianBlurResampled=0"
        V.CreateSelection
       
        BitWidth = V.SizeWidth
        BitHeight = V.SizeHeight

        Set Filter = ActiveDocument.ExportBitmap(DesktopPath + "fTemp.jpg", cdrJPEG, cdrSelection, , , , DPI, DPI)

        With Filter
            .Compression = 5
            .Smoothing = 20
            .Progressive = True
            .SubFormat = 0                         ' 0 for 4:2:2,   1 for 4:4:4
            .Finish
        End With

        V.Delete

        S.Transparency.ApplyPatternTransparency cdrBitmapPattern, DesktopPath + "fTemp.jpg"

        With S.Transparency.Pattern

            .TileWidth = BitWidth
            .TileHeight = BitHeight

        End With
       
        S.Transparency.Start = 100
        S.Transparency.End = 0

    End Sub

    Public Function DesktopPath() As String
        DesktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
    End Function

Children