Advertisement
Guest User

Perl_cs_vis_dec

a guest
Nov 10th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 2.82 KB | None | 0 0
  1. #Imad E. , script perl pour generer les rotations et les mirroires d'une image
  2. # faire l'opération XOR entre les différentes images ..
  3. #La fonction Roter pour génerer les images ( version programmeur ( pas d'options ) )
  4. #La fonction XORER pour faire le xor ( version programmeur ( pas d'options ) )
  5.  
  6. use GD::Image;
  7.  
  8. $image_0 = newFromPng GD::Image('enigma.png');
  9. ($width,$height) = $image_0->getBounds();
  10.  
  11.  
  12. sub XORER
  13. {
  14. $image_1 = newFromPng GD::Image('enigm_90.png');    #Rotation 90
  15. $image_2 = newFromPng GD::Image('enigm_180.png');
  16. $image_3 = newFromPng GD::Image('enigm_270.png');
  17. $image_4 = newFromPng GD::Image('enigm_hor.png');   #miroire horiz
  18. $image_5 = newFromPng GD::Image('enigm_ver.png');   #miroire vertical
  19. $result=   newFromPng GD::Image('imad_t.png');
  20.  
  21. print "[+]Processing the $width x $height image. . . \n";
  22.  
  23. for (my $h=0;$h<$height;$h++)
  24. {
  25. for (my $w=0;$w<$width-512;$w++)
  26. {
  27.  $index_0 = $image_0->getPixel($w,$h);
  28.  $index_1 = $image_1->getPixel($w,$h);
  29.  $index_2 = $image_2->getPixel($w,$h);
  30.  $index_3 = $image_3->getPixel($w,$h);
  31.  $index_4 = $image_4->getPixel($w,$h);
  32.  $index_5 = $image_5->getPixel($w,$h);
  33.  
  34.  $index_6 = $image_0->getPixel($w,$h);  #pour un décalage à moitié ajouter $width/2 ou $height/2
  35.  $index= ( $index_0 ^ $index_6 );
  36.  $result->setPixel($w,$h,$index);      
  37. }
  38.  
  39.  
  40. }
  41.  
  42. $png_data = $result->png;
  43. open ($D,">",'result.png') ;
  44. binmode $D;
  45. print $D $png_data;
  46. close $D;
  47. `result.png`;
  48.  
  49. }
  50.  
  51.  
  52.  
  53. sub ROTER
  54. {
  55. $image_1 = newFromPng GD::Image('imad_t.png');
  56. $image_2 = newFromPng GD::Image('imad_t.png');
  57. $image_3 = newFromPng GD::Image('imad_t.png');
  58. $image_4 = newFromPng GD::Image('imad_t.png');
  59. $image_5 = newFromPng GD::Image('imad_t.png');
  60.  
  61. print "[+]Processing the $width x $height image. . . \n";
  62.  
  63. for (my $h=0;$h<$height;$h++)
  64. {
  65. for (my $w=0;$w<$width;$w++)
  66. {
  67.  
  68. $index_2 = $image_0->getPixel($w,$h);
  69. $image_1->setPixel($h,$width-$w,$index_2);              #ROT 90
  70. $image_2->setPixel($width-$w,$height-$h,$index_2);      #ROT 180
  71. $image_3->setPixel($height-$h,$w,$index_2);             #ROT 270
  72. $image_4->setPixel($w,$height-$h,$index_2);             #MIROR VERT
  73. $image_5->setPixel($width-$w,$h,$index_2);              #MIROR HORI
  74.  
  75.  
  76.  
  77. open ($D_90,">",'enigm_90.png') ;open ($D_180,">",'enigm_180.png') ;open ($D_270,">",'enigm_270.png') ;
  78. open ($D_HOR,">",'enigm_hor.png') ;open ($D_VERT,">",'enigm_ver.png') ;
  79. binmode $D_90;binmode $D_180;binmode $D_270;binmode $D_HOR;binmode $D_VERT;
  80. $png_data = $image_1->png;print $D_90 $png_data;
  81. $png_data = $image_2->png;print $D_180 $png_data;
  82. $png_data = $image_3->png;print $D_270 $png_data;
  83. $png_data = $image_4->png;print $D_VERT $png_data;
  84. $png_data = $image_5->png;print $D_HOR $png_data;
  85. close $D_90;close $D_180;close $D_270;close $D_HOR;close $D_VERT;
  86. `enigm_90.png`;
  87. `enigm_180.png`;
  88. `enigm_270.png`;
  89. `enigm_hor.png`;
  90. `enigm_ver.png`;
  91.  
  92. }
  93.  
  94.  
  95. &XORER;
  96. #&ROTER;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement