Advertisement
Guest User

Untitled

a guest
Aug 24th, 2018
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.03 KB | None | 0 0
  1. #@gui Cascading self glitching: fx_self_glitching_cascade, fx_self_glitching_cascade_preview(1)
  2. #@gui : note = note("Shifts images in a cascading fashion but computes values based on shifted and original images.")
  3. #@gui : note = note("<small>This filter many channel options and many operation options allowing for extremely-distorted images.</small>"), sep = separator()
  4. #@gui : 1. Shift channels = choice("RGB&#47;sRGB","CMYK&#47;CMY","HSV&#47;HSV8","HSL&#47;HSL8","HSI&#47;HSI8","LCH&#47;LCH8","Lab&#47;Lab8","HCY&#47;YCbCr","YIQ&#47;YIQ8","YUV&#47;YUV8","Bayer&#47;INT24","XYZ&#47;XYZ8")
  5. #@gui : 2. Alt choice = bool(0)
  6. #@gui : 3. Process Alpha = bool(0)
  7. #@gui : 4,5. Zeroth shift = point(50,50,0,1,255,255,255,175)
  8. #@gui : 6. Boundary = choice(3,"Zero","Nearest","Periodic","Mirror")
  9. #@gui : sep = separator()
  10. #@gui : 7. Iterations = int(3,1,32)
  11. #@gui : sep = separator()
  12. #@gui : 8. Power = float(0,-5,5)
  13. #@gui : 9. Bias = float(0,-256,256)
  14. #@gui : 10. Negation = bool(0)
  15. #@gui : 11. Operator = choice("Add","Multiply","Bitwise And","Bitwise Or","Bitwise Xor","Power","Reverse Power","Modulo","Reverse Modulo","Divide","Reverse Divide","Subtract","Reverse Subtract","Left Bitwise Shift","Reverse LBS","Right Bitwise Shift","Reverse RBS","Left Bitwise Rotation","Reverse LBR","Right Bitwise Rotation","Reverse RBR","Average","Round","Reverse Round","Sine","Reverse Sine","Cosine","Reverse Cosine","Tangent","Reverse Tangent &#40;CPU-intensive&#41;","Cosecant","Reverse Cosecant","Secant","Reverse Secant","Cotangent","Reverse Cotangent","Variance","Difference","Minimum","Maximum","Interference &#40;Add&#41;","Reverse Interference &#40;Add&#41;","Interference &#40;Multiply&#41;","Interference &#40;Divide&#41;","Reverse Interference &#40;Div&#41;","Interference &#40;Subtract&#41;","Reverse Interference &#40;Subt&#41;","Interference &#40;Rev Subt&#41;","Reverse Interference &#40;Rev Subt&#41;","Interference &#40;Difference&#41;","Reverse Interference &#40;Diff&#41;","Interference &#40;Variance&#41;")
  16. #@gui : 12. Post-Shift Multiplier = float(1,0,10)
  17. #@gui : 13. Post-Shift Modulo = int(256,1,1024)
  18. #@gui : 14. Post-Shift Addition = int(0,-1024,1024)
  19. #@gui : 15,16. Shift target = point(55,55,0,1,255,0,0,175)
  20. #@gui : 17. Target for final &#40;rather than first&#41; shift = bool(0)
  21. #@gui : 18,19. Cascade centre point = point(45,45,0,1,0,255,0,175)
  22. #@gui : 20. Shift randomness = float(0.75,0,4)
  23. #@gui : 21. Boundary = choice(3,"Zero","Nearest","Periodic","Mirror")
  24. #@gui : sep = separator(), 22. Run on channel(s) = choice("All","RGBA [all]","RGB [all]","RGB [red]","RGB [green]","RGB [blue]","RGBA [alpha]","Linear RGB [all]","Linear RGB [red]","Linear RGB [green]","Linear RGB [blue]","YCbCr [luminance]","YCbCr [blue-red chrominances]","YCbCr [blue chrominance]","YCbCr [red chrominance]","YCbCr [green chrominance]","Lab [lightness]","Lab [ab-chrominances]","Lab [a-chrominance]","Lab [b-chrominance]","Lch [ch-chrominances]","Lch [c-chrominance]","Lch [h-chrominance]","HSV [hue]","HSV [saturation]","HSV [value]","HSI [intensity]","HSL [lightness]","CMYK [cyan]","CMYK [magenta]","CMYK [yellow]","CMYK [key]","YIQ [luma]","YIQ [chromas]")
  25. # #@gui : sep = separator(), 23. Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate top","Duplicate left","Duplicate bottom","Duplicate right","Duplicate horizontal","Duplicate vertical","Checkered","Checkered inverse"), Preview split = point(50,50,0,0,200,200,200,0,10,0)
  26. #@gui : sep = separator(), note = note("<small>Original author: <i><a href="https://goo.gl/Ryf7Cv">David Tschumperl&#233;</a></i>&#59; extended by some nobody who calls themselves 'Joan Rake' or something.<p>Latest update: <i>2018/08/24</i>.</small>")
  27. fx_self_glitching_cascade :
  28. shift {$4-50}%,{$5-50}%,0,0,$6,0
  29. repeat $7
  30. repeat $! l[$>] if {!$3} split_opacity fi l[0]
  31. if {$2}
  32. if {$1==0} rgb2srgb
  33. elif {$1==1} rgb2cmy
  34. elif {$1==2} rgb2hsv8
  35. elif {$1==3} rgb2hsl8
  36. elif {$1==4} rgb2hsi8
  37. elif {$1==5} rgb2lch8
  38. elif {$1==6} rgb2lab8
  39. elif {$1==7} rgb2ycbcr
  40. elif {$1==8} rgb2yiq8
  41. elif {$1==9} rgb2yuv8
  42. elif {$1==10} rgb2int
  43. elif {$1==11} rgb2xyz8
  44. fi else
  45. if {$1==1} rgb2cmyk
  46. elif {$1==2} rgb2hsv
  47. elif {$1==3} rgb2hsl
  48. elif {$1==4} rgb2hsi
  49. elif {$1==5} rgb2lch
  50. elif {$1==6} rgb2lab
  51. elif {$1==7} rgb2hcy
  52. elif {$1==8} rgb2yiq
  53. elif {$1==9} rgb2yuv
  54. elif {$1==10} rgb2bayer 0
  55. elif {$1==11} rgb2xyz
  56. fi fi
  57. f "init(
  58. const stype = $17?$7:1;
  59. shift = (([w,h]-1)*([$18,$19]-[$15,$16]+(2*(u-0.5)*sqrt((($18-$15)^2)+(($19-$16)^2))*($20^3)))/stype)%;
  60. const sign = $10?-1:1;
  61. const boundary = $21;
  62. );
  63. val = sign*((2^$8)*j(shift) + $9);
  64. (($11==0?(val + i):
  65. $11==1?(val * i):
  66. $11==2?(val & i):
  67. $11==3?(val | i):
  68. $11==4?xor(val,i):
  69. $11==5?(val^i):
  70. $11==6?(i^val):
  71. $11==7?(val%i):
  72. $11==8?(i%val):
  73. $11==9?(val / i):
  74. $11==10?(i / val):
  75. $11==11?(i - val):
  76. $11==12?(val - i):
  77. $11==13?(val << i):
  78. $11==14?(i << val):
  79. $11==15?(val >> i):
  80. $11==16?(i >> val):
  81. $11==17?for(n=0,n<(i%32),n++,rol(val)):
  82. $11==18?for(n=0,n<(val%32),n++,rol(i)):
  83. $11==19?for(n=0,n<(i%32),n++,ror(val)):
  84. $11==20?for(n=0,n<(val%32),n++,ror(i)):
  85. $11==21?avg(i,val):
  86. $11==22?round(val,i,0):
  87. $11==23?round(i,val,0):
  88. $11==24?i*sin(val*2*pi/$13):
  89. $11==25?val*sin(i*2*pi/$13):
  90. $11==26?sign*i*cos(val*2*pi/$13):
  91. $11==27?sign*val*cos(i*2*pi/$13):
  92. $11==28?i*tan(val*pi/$13):
  93. $11==29?val*tan(i*pi/$13):
  94. $11==30?i*sin($13/(val*2*pi)):
  95. $11==31?val*sin($13/(i*2*pi)):
  96. $11==32?sign*i*cos($13/(val*2*pi)):
  97. $11==33?sign*val*cos($13/(i*2*pi)):
  98. $11==34?i*tan($13/(val*pi)):
  99. $11==35?val*tan($13/(i*pi)):
  100. $11==36?$13*var(val,i):
  101. $11==37?abs(i - val):
  102. $11==38?min(i,val):
  103. $11==39?max(i,val):
  104. $11==40?0.005*i*(((j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8))+val):
  105. $11==41?0.005*val*((j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8)+i):
  106. $11==42?0.1*i*(j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8)*val:
  107. $11==43?0.1*i*(j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8)/val:
  108. $11==44?0.1*val*(j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8)/i:
  109. $11==45?0.001*i*((j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8)-val):
  110. $11==46?0.001*val*((j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8)-i):
  111. $11==47?0.001*i*(val-(j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8)):
  112. $11==48?0.001*val*(i-(j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8)):
  113. $11==49?0.001*i*abs((j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8)-val):
  114. $11==50?0.001*val*abs((j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8)-i):
  115. $11==51?0.00001*$13*var(val,i,(j(0,0,0,(c+1)%(s(#0)-1)+1)*2^$8))
  116. )*$12)%$13+$14;
  117. "
  118. if {$2}
  119. if {$1==0} srgb2rgb
  120. elif {$1==1} cmy2rgb
  121. elif {$1==2} hsv82rgb
  122. elif {$1==3} hsl82rgb
  123. elif {$1==4} hsi82rgb
  124. elif {$1==5} lch82rgb
  125. elif {$1==6} lab82rgb
  126. elif {$1==7} ycbcr2rgb
  127. elif {$1==8} yiq82rgb
  128. elif {$1==9} yuv82rgb
  129. elif {$1==10} int2rgb
  130. elif {$1==11} xyz82rgb
  131. fi else
  132. if {$1==1} cmyk2rgb
  133. elif {$1==2} hsv2rgb
  134. elif {$1==3} hsl2rgb
  135. elif {$1==4} hsi2rgb
  136. elif {$1==5} lch2rgb
  137. elif {$1==6} lab2rgb
  138. elif {$1==7} hcy2rgb
  139. elif {$1==8} yiq2rgb
  140. elif {$1==9} yuv2rgb
  141. elif {$1==10} bayer2rgb 0,0,0
  142. elif {$1==11} xyz2rgb
  143. fi fi
  144. endl a c endl done done
  145. fx_self_glitching_cascade_preview :
  146. index=0
  147. layers=l
  148. -repeat {max(0,$layers)}
  149. -fx_self_glitching_cascade $*
  150. #-ac[$index] "-fx_self_glitching_cascade $*",$22
  151. index={$index+1}
  152. -done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement