# HybridResize by mf # # Resizes sharp on edges, soft on the rest of the image. # Completely untested, probably totally useless. # function HybridResize(clip input, int width, int height, int "sharpness", bool "reverse") { sharpness = Default(sharpness, 255) # sharpness of the resize, 0-255 reverse = Default(reverse, false) # soft resize on edges resizemask = input.EdgeMask(0, "sobel").Inflate().Levels(0, 1.0, 35, 0, 255) .\ BilinearResize(width, height).GreyScale().ConvertToRGB32() resizemaskinverse = resizemask.Levels(0, 1.0, 255, 255, 0) sharp = input.LanczosResize(width, height) soft = input.BilinearResize(width, height) sharprgb = sharp.ConvertToRGB32() softrgb = soft.ConvertToRGB32() maskedsharp = Mask(sharprgb, reverse ? resizemaskinverse : resizemask) edgedsharp = Layer(softrgb, maskedsharp, "add", sharpness) edgedsharpyv12 = sharp.MergeLuma(edgedsharp.ConvertToYV12()) return edgedsharpyv12 }