Advertisement
Guest User

Untitled

a guest
Feb 17th, 2019
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. #@gui DCT FSU : fx_dct_fsu, fx_dct_fsu_preview(0)
  2. #@gui : note = note("<small>DCT operations.</small>")
  3. #@gui : Mode = choice("Lowpass","Highpass","Plaid","Lowpassed Plaid","Highpassed Plaid","Subsample")
  4. #@gui : X Threshold (%) = float(50,0,100)
  5. #@gui : Y Threshold (%) = float(50,0,100)
  6. #@gui : Mirror = choice("Off","X","Y","XY")
  7. #@gui : X Shift (%) = float(0,0,100)
  8. #@gui : Y Shift (%) = float(0,0,100)
  9. #@gui : Normalise = choice("Off","Standard","Fold")
  10. #@gui : Alpha = bool(0)
  11. #@gui : Reverse = bool(0)
  12. _dct_fsu :
  13. if $7 idct else dct fi
  14. f "begin(mode="$1";qx="$2";qy="$3");
  15. mode==0?(((x>(w*qx))||(y>(h*qy)))?0:i):
  16. mode==1?(((x<(w*qx))||(y<(h*qy)))?0:i):
  17. mode==2?(((x==round((w*qx)))||(y==round((h*qy))))?i:0):
  18. mode==3?((((x==round((w*qx)))||(y==round((h*qy))))&&((x<=(w*qx))||(y<=(h*qy))))?i:0):
  19. mode==4?((((x==round((w*qx)))||(y==round((h*qy))))&&((x>=(w*qx))||(y>=(h*qy))))?i:0):
  20. mode==5?(i(round(x,max(1,w*(1-qx^2))),round(y,max(1,h*(1-qy^2))))):
  21. i"
  22. #if {$1==5} iw={w} ih={h} r {max(ceil($2*w),1)},{max(ceil($3*h),1)} r $iw,$ih fi
  23. if {$4==1} mirror x elif {$4==2} mirror y elif {$4==3} mirror xy fi
  24. f "j(round(w*"$5"),round(h*"$6"),0,0,0,2)"
  25. if $7 dct else idct fi
  26. fx_dct_fsu :
  27. qx=($2/100)^2
  28. qy=($3/100)^2
  29. repeat $! l[$>]
  30. if {!$8} split_opacity fi
  31. l[0]
  32. _dct_fsu $1,$qx,$qy,$4,{$5/100},{$6/100},$9
  33. if $7 n 0,255 if {$7==2} - 127.5 abs n 0,255 fi fi
  34. endl
  35. if {!$8} a c fi
  36. endl done
  37. fx_dct_fsu_preview :
  38. fx_dct_fsu $*
  39.  
  40. #@gui JFIF Effects 2: fx_jfif_2, fx_jfif_2_preview(0)
  41. #@gui : note = note("<small>Poorly-implemented JPEG encoder. Low block dimensions will destroy the CPU!</small>")
  42. #@gui : 1. Quality Threshold (%) = float(50,0,100)
  43. #@gui : 2. Quality Mode = choice("Rectangle 1","Rectangle 2","Diagonal 1","Diagonal 2")
  44. #@gui : 3. Detail Regain = float(2,0,10)
  45. #@gui : 4. Reverse Transform = bool(0)
  46. #@gui : 5. Block Width = int(8,1,32)
  47. #@gui : 6. Block Height = int(8,1,32)
  48. #@gui : 7. Colour Space = choice("RGB","sRGB","CMY","HSV8","HSV","HSL8","HSL","HSI8","HSI","LCH8","LCH","Lab8","Lab","YCbCr","YCbCrGLIC","YIQ8","YIQ","YUV8","YUV","Bayer","HCY","XYZ8","XYZ")
  49. fx_jfif_2:
  50. q=$1/100
  51. con={($3/10)^8}
  52. bw=$5
  53. bh=$6
  54. if {$7>=2} cs={$7+1} else cs=$7 fi
  55. csswap 0,1,0,$cs
  56. repeat $! l[$>]
  57. iw={w}
  58. ih={h}
  59. nw={w+(-w%$bw)}
  60. nh={h+(-h%$bh)}
  61. r {$nw},{$nh},1,100%,0,3
  62. split_tiles {-$bw},{-$bh}
  63. if $4 idct else dct fi
  64. f "begin(q="$q";mode="$2";bw="$bw";bh="$bh";con="$con");
  65. mode==0?val=i*cut(1+(q*(max(bw,bh))-(max(x,y))),0,1):
  66. mode==1?val=i*cut(1+(q*(max(bw,bh))-(max(x/bw,y/bh)*max(bw,bh))),0,1):
  67. mode==2?val=i*cut(1+(q*(bw+bh)-(x+y)),0,1):
  68. mode==3?val=i*cut(1+(q*(2*max(bw,bh))-(x/bw+y/bh)*max(bw,bh)),0,1);
  69. round(round(val*abs(1+con*val),10000*((1-q)^4))/abs(1+con*val))
  70. "
  71. f "((x>"$bw")||y>"$bh")?0:i"
  72. if $4 dct else idct fi
  73. append_tiles {$nw/$bw},{$nh/$bh}
  74. r {$iw},{$ih},1,100%,0,3
  75. endl
  76. done
  77. csswap $cs,1,0,0
  78. fx_jfif_2_preview:
  79. fx_jfif_2 $*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement