Advertisement
Guest User

slideshow.rb

a guest
Dec 13th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.49 KB | None | 0 0
  1. #!/usr/bin/ruby
  2. require "pry"
  3. fps=29.97
  4. images_list=Dir["*.png"].select{|z| z=~/[0-9]{3}\.png/}.sort
  5. dissolve_frames=4
  6. timing=ARGV[0]
  7. resize=ARGV[1]
  8. resize_str=resize==nil ? "" : ".lanczos4resize(#{resize.split("x").join(",")})"
  9. cutpoints=File.read(timing).split("\n").map{|z| t=z.split("\t");[(t[0].to_f*fps),(t[1].to_f*fps),t[2]]}
  10. kezdetek=cutpoints.transpose[0].map{|z| z.round}
  11. hosszak=[]
  12. for i in 0..cutpoints.size-2 do
  13.   hosszak[i]=kezdetek[i+1]-1-kezdetek[i]-2
  14. end
  15. hosszak[cutpoints.size-1]=(cutpoints[cutpoints.size-1][1]-cutpoints[cutpoints.size-1][0]).round
  16.  
  17.  
  18. image_avs=""
  19.  
  20.  
  21. for i in 0..cutpoints.size-1 do
  22.  
  23.  ex=0
  24.  #image_avs+=%Q{image#{"%03d" % i}=ImageSource("#{"%03d" % i}.png", end = #{(hosszak[i]+(i==0  ? dissolve_frames/2+1 : dissolve_frames+1)).round},fps=#{fps.to_s})\n}
  25.  image_avs+=%Q{image#{"%03d" % i}=ImageSource("#{images_list[i % images_list.size]}", end = #{(hosszak[i]+(i==0  ? dissolve_frames/2+1 : dissolve_frames+1)).round},fps=#{fps.to_s})\n}
  26.  
  27. end
  28.  
  29.  
  30.  image_avs+=cutpoints.collect.with_index.map{|z,i| "image#{"%03d" % i}"}.join("++")+"\n"
  31.  
  32.  
  33. cutpoints=cutpoints.map{|z| z[0..1]}.flatten
  34.  
  35.  
  36.  
  37.  
  38.   i=0
  39.   cp_avs=image_avs+"c#{i}=image#{"%03d" % i}.trim(0,image#{"%03d" % i}.framecount-#{dissolve_frames})\n"
  40.   i=1
  41.   while i<=(cutpoints.size)-4
  42.      cp_avs+="c#{i}=dissolve(image#{"%03d" % ((i)/2)}.trim(image#{"%03d" % ((i)/2)}.framecount-#{dissolve_frames}+1,image#{"%03d" % ((i)/2)}.framecount-1),image#{"%03d" % (i/2+1)}.trim(0,#{dissolve_frames}-1),#{dissolve_frames})\n"
  43.      cp_avs+="c#{i+1}=image#{"%03d" % (i/2+1)}.trim(#{dissolve_frames},image#{"%03d" % (i/2+1)}.framecount-#{dissolve_frames})\n"
  44.      i+=2
  45.   end
  46.   cp_avs+="c#{cutpoints.size-3}=dissolve( image#{"%03d" % ((cutpoints.size-3)/2)}.trim( image#{"%03d" % ((cutpoints.size-3)/2)}.framecount-#{dissolve_frames}+1,image#{"%03d" % ((cutpoints.size-3)/2)}.framecount-1),image#{"%03d" % ((cutpoints.size-2)/2)}.trim(0,#{dissolve_frames}-1),#{dissolve_frames})\n"
  47.   cp_avs+="c#{cutpoints.size-2}=image#{"%03d" % ((cutpoints.size-2)/2)}.trim(#{dissolve_frames},image#{"%03d" % ((cutpoints.size-2)/2)}.framecount-2)\n"
  48.   cp_avs+="c#{cutpoints.size-1}=FadeOut2(loop(image#{"%03d" % ((cutpoints.size-2)/2)}.trim(image#{"%03d" % ((cutpoints.size-2)/2)}.framecount-1,image#{"%03d" % ((cutpoints.size-2)/2)}.framecount-2),61),60)\n"
  49.   cp_avs+=(0..cutpoints.size-2).map{|z| "c#{z}"}.join("++")
  50.   cp_avs+="\nconverttoyv12().ylevels(gamma=1.25)"
  51.   puts cp_avs+"\nylevels(gamma=1.4)"
  52.   File.write "1.avs",cp_avs
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement