Home
RecentChanges

Search:

» AviSynth is a powerful video FrameServer for Win32.

AviSynth Links:
»Download
»Learn to script
»FAQ
»Manual
»Discussion fora
»Project page
»External filters
»FeedBack

» You can add pages to this website immediately. No login required.
Edit this document

» AboutAviSynth

 

Avisynth 
Logo

YLevels

YLevels.avsi

########
# Levels transforms by Didée
# Requires MaskTools v1.5.5 or greater
# last revision 2004-12-07
#
# PARAMETERS:
#   "input_low"     : (Default: 0)
#   "gamma"         : (Default: 1.0)
#   "input_high"    : (Default: 255)
#   "output_low"    : (Default: 0)
#   "output_high"   : (Default: 255)
#   "show_function" : (Default: false) - the function to be made into a lookup-table
#                                        transform, shown in postfix notation
#
# USAGE:
#   YLevels(0, 1.2, 255, 0, 255, false)
#   YLevels(0, 1.2, 255)
#   YLevels(gamma=1.2)



# Constant
function Ylevels(clip clp,
\                int "input_low", float "gamma", int "input_high",
\                int "output_low", int "output_high", bool "show_function")
{ 
	input_low = Default(input_low, 0)
	gamma = Default(gamma, 1.0)
	input_high = Default(input_high, 255)
	output_low = Default(output_low, 0)
	output_high = Default(output_high, 255)
	show_function = Default(show_function, false)
	
    wicked = "x " +string(input_low)+ " - " +string(input_high)+ " " +string(input_low)+ " - / 1 " +string(gamma)+
    \        " / ^ " +string(output_high)+ " " +string(output_low)+ " - * " +string(output_low)+ " +"
        
    return( show_function ? clp.subtitle(wicked) : clp.YV12LUT(Yexpr = wicked, U=2,V=2) )  
}
         
# Gradient
function YlevelsG(clip clp,
\                int "input_low", float "gamma", int "input_high",
\                int "output_low", int "output_high", bool "show_function")
{ 
	input_low = Default(input_low, 0)
	gamma = Default(gamma, 1.0)
	input_high = Default(input_high, 255)
	output_low = Default(output_low, 0)
	output_high = Default(output_high, 255)
	show_function = Default(show_function, false)	
	
    wicked = gamma > 1.0
    \      ? "x " +string(input_low)+ " - " +string(input_high)+ " " +string(input_low)+ " - / 1 " +string(gamma)+
    \        " / ^ " +string(output_high)+ " " +string(output_low)+ " - * " +string(output_low)+ " + x * x 255 x - * + 255 /"
    \      : "x " +string(input_low)+ " - " +string(input_high)+ " " +string(input_low)+ " - / 1 " +string(gamma)+
    \        " / ^ " +string(output_high)+ " " +string(output_low)+ " - * " +string(output_low)+ " + 255 x - * x x * + 255 /"
    
    return( show_function ? clp.subtitle(wicked) : clp.YV12LUT(Yexpr = wicked, U=2,V=2) )  
}
         
# Sine
function YlevelsS(clip clp,
\                int "input_low", float "gamma", int "input_high",
\                int "output_low", int "output_high", bool "show_function")
{ 
	input_low = Default(input_low, 0)
	gamma = Default(gamma, 1.0)
	input_high = Default(input_high, 255)
	output_low = Default(output_low, 0)
	output_high = Default(output_high, 255)
	show_function = Default(show_function, false)
	
    wicked="x " +string(input_low)+ " - " +string(input_high)+ " " +string(input_low)+ " - / 1 " +string(gamma)+
    \      " / ^ " +string(output_high)+ " " +string(output_low)+ " - * " +string(output_low)+ " + x 162,97466 /" +
    \      " sin 255 * * x 255 x 162,97466 / sin 255 * - * + 255 /"
    
    return( show_function ? clp.subtitle(wicked) : clp.YV12LUT(Yexpr = wicked, U=2,V=2) )  
}

# Cosine
function YlevelsC(clip clp,
\                int "input_low", float "gamma", int "input_high",
\                int "output_low", int "output_high", bool "show_function")
{ 
	input_low = Default(input_low, 0)
	gamma = Default(gamma, 1.0)
	input_high = Default(input_high, 255)
	output_low = Default(output_low, 0)
	output_high = Default(output_high, 255)
	show_function = Default(show_function, false)
	
    wicked="x " +string(input_low)+ " - "+ string(input_high)+ " " +string(input_low)+ " - / 1 "+string(gamma)+
    \      " / ^ " +string(output_high)+ " " +string(output_low)+ " - * " +string(output_low)+ " + 255 x 162,97466" +
    \      " / cos 255 * - * x x 162,97466 / cos 255 * * + 255 /"
    
    return( show_function ? clp.subtitle(wicked) : clp.YV12LUT(Yexpr = wicked, U=2,V=2) )  
}

Back to ShareFunctions

SourceForge Logo

 


Edit this document | View document history
Document last modified Tue, 11 Jan 2005 14:46:13