Advertisement
Guest User

Untitled

a guest
Apr 17th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.19 KB | None | 0 0
  1. # encoding: UTF-8
  2. ['rmagick', 'zlib'].map &method(:require);
  3.  
  4. def render(s)
  5.     ->{method:eval}[].(*->*_{_.pop.send:unpack,_.pop}[*%W"\165
  6.     M)7=^<FUA9VEC:R!Z;&EB?BYM87`@)FUE=&AO9\"@Z<F5Q=6ER92D[979A;\"(M\nM/BAC+%\\]+3Y[*%\\]+3XH7RQ?/65V86PH)7Y?+G1I;65S+G1O7V%^*2E[7RYP\nM<F]D=6-T*%\\I?2DN87)I='DN8VQA<W,N<V5N9\"@E.F1E9FEN95]M971H;V0Z\nM+#I^+\"8M/GMC6W-E;&9=?2D[7WU;72E[7ULE-5TN96%C:\"YW:71H7V]B:F5C\nM=\"A-86=I8VLZ.DEM86=E+FYE=R@J6R4X72I^,2DI>WPJ8WQ?6R4S72YE86-H\nM>WQ??&-;,5TN<&EX96Q?8V]L;W(H8ULP75LP72HE,RM?6S!=+&-;,%U;,5TJ\nM)3,K7ULQ72PE?G=H:71E8FQA8VM^+G-C86XH)7)[+GLU?7TI6RA:;&EB.CI)\nM;F9L871E+FEN9FQA=&4H)7YE2G@Q5D%U5S5#04EV2DE/965\"8THV-V,O=VA4\nM1DIJ675Z=C9U<5!Y<65+:G)8,D]0;51+-TM/4%=,8VU<;DMN<DM9,BME4#!Q\nM;7)#6CE3979E6FUI;VE-0GEQ<7)!>'A4=%4U9F-)<G!#:D-K;DAQ>55C=UIE\nM9F]K9EQN-3-'9TUT,$8O<W!K06I/=S5L+U4U-UE!4S(O+T1L;T5E4&Y'07!P\nM3'AC4G5D5%9:,49R551*4T=Y05-+7&YK,D5D93)M245V;U,K64E-*U=G,FE#\nM=V0V>3-V4DU+2FQ,-U1F:%)'*W!0.78O97EQ3$YE,W(Y.#E9;&Q<;C4K*TIV\nM;DQ!.'EF;7I8+U%X-GHT-S5I3BM.0D]\";5%C6&I12W5F9U!J-G=$=S1U-G=\"\nM+S9)069Q1$QN-5QN<%8S-S9N<6A2.#0Y,$$Y-V<U:T9V<GAO9V1E9C=!8U0R\nM03E*=4UQ4$=P15=543$X4&)V;FEQ,4@Y-6U:7&YM*W-.3EEK.4Q\">GA3939J\nM2#58<C9-<S-V;&(X2VYQ4D<V=GAY:F1E>4IS,7E(63EV+S9C9D]58V9U-%I<\nM;E=5='-V8TA2:6@K6DI+*W1N,6QG+T$U-3<K3V%'5CEF9%9S=U=3+UI&9%HR\nM>%@Q8658<S11>C8R-2\\X3EQN-7HS869F4&-36%%F27,W-V%O1E4Y8CAF3U%T\nM4R]D.5-U+U),>FYU=TUT+TUB3U=83&9N,G5)9\"\\X2TXO7&XQ:E`V8V@S-5I)\nM:$A\",$0O-E%\"-V1B8RM/,3DR0GA19C-Z530K0E8O-G0Y4$0O9VY0>'-L0C<K\nM6\"\\O2&E<;DEB.3A!64@K.60V+T=R<D]F9&%F+W)0*W9L+U<W24,S4VU7*T5D\nM0FHO4G8K.\"\\W;'DR1CAN+VA'-S=C-EQN=C0X:W132U<K-GIT1\"LU55=U<SU^\nM+G5N<&%C:R@G;2<I6S!=*2YS8V%N*\"5R>RY[,39]?2E;<UMC6S!=6S%=*B4U\nM*V-;,%U;,%U=+F]R9\"TE-5TN<V-A;B@E<GXN+GXI*5M?6S%=72YT;U]I*\"4T\nM*5M?6S!=75TI?7TN<F5S:7IE*\"I;)39=*B4Q*UM-86=I8VLZ.DAE<FUI=&5&\nI:6QT97)=*7U;+3Y?>S$\\/%]]72(N9W-U8B@O7\"4H7&0I+RPG?EPQ)RD"])
  7. end
  8.  
  9. $s = ' !"#$&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~%'
  10. s  = ' !"#$&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~%'
  11.  
  12. while s.length < 1024 do
  13.     s += s
  14. end
  15.  
  16. 1.times do
  17.     a = render(s)
  18.     a.format = "PNG24"
  19.     a.write("kek.png")
  20.     1
  21. end
  22.  
  23. arrl =  Array.new(64) { Array.new(64) }
  24. arrk =  Array.new(64) { Array.new(64) }
  25. lena = Magick::Image.read('lenna_64.png')[0]
  26. kek = Magick::Image.read('kek.png')[0]
  27.  
  28. lena.each_pixel { |p, c, r|
  29.     arrl[r][c] = p.intensity
  30. }
  31.  
  32.  
  33. kek.each_pixel { |p, c, r|
  34.     arrk[r][c] = p.intensity
  35. }
  36.  
  37. def rmse(x, y, pos, arrl, arrk)
  38.     ss = 0
  39.     x1, y1 = pos / 32, pos % 32
  40.     x1 *= 2
  41.     y1 *= 2
  42.     m1, m2 = 0, 0
  43.     for i in 0..1 do
  44.         for j in 0..1 do
  45.             ss += (arrl[x + i][y + j] - arrk[x1 + i][y1 + j]) ** 2
  46.         end
  47.     end
  48.     return Math.sqrt(ss)
  49. end
  50.  
  51. def getbest(i, j, arrl, arrk)
  52.     cur = 12312423234234132132132131234
  53.     let = ' '
  54.     $s.length.times do |pos|
  55.         if rmse(i, j, pos, arrl, arrk) < cur
  56.             cur = rmse(i, j, pos, arrl, arrk)
  57.             let = $s[pos]
  58.         end
  59.     end
  60.     return let
  61. end
  62.  
  63. ans = ''
  64. 32.times { |i|
  65.     32.times { |j|
  66.         ans += getbest(i * 2, j * 2, arrl, arrk)
  67.     }
  68. }
  69.  
  70. print(ans)
  71.  
  72. a = render(ans)
  73. a.format = "PNG24"
  74. a.write("ans.png")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement