SHOW:
|
|
- or go back to the newest paste.
1 | <?php | |
2 | /* | |
3 | || // || Script By: Seff Preston | |
4 | || // || // || Script Premise: If U Seek Amy | |
5 | || // || // || ~some informational assistance from Nymph | |
6 | - | || // || // || |
6 | + | || // || // || ~Updated for 2016 by Erin |
7 | || // ||))))) // || Special Thank you to the circlejerks | |
8 | || // || )) // || ~You make my kokoro go doki doki | |
9 | || // || )) // || | |
10 | || // || )) // || P.S. | |
11 | || // || )) // || I love you for making the API Mootykins | |
12 | || // |||||)) // || Now, just give peace a chance? | |
13 | |*/ | |
14 | //set available boards | |
15 | - | $bArray = array("a","b","c","d","e","g","gif","h","hr","k","m","o","p","r","s","t","u","v","vg","w","wg","i","ic","r9k","cm","hm","y","3","adv","an","cgl","ck","co","diy","fa","fit","hc","int","jp","lit","mlp","mu","n","po","pol","sci","soc","sp","tg","toy","trv","tv","vp","wsg","x"); |
15 | + | $bArray = array("3","a","aco","adv","an","asp","b","biz","c","cgl","ck","cm","co","d","diy","e","f","fa","fit","g","gd","gif","h","hc","his","hm","hr","i","ic","int","jp","k","lgbt","lit","m","mlp","mu","n","news","o","out","p","po","pol","qa","r","r9k","s","s4s","sci","soc","sp","t","tg","toy","trash","trv","tv","u","v","vg","vp","vr","w","wg","wsg","wsr","x","y"); |
16 | ||
17 | if(!isset($_POST['id'])) | |
18 | { | |
19 | //Thread Insert Form | |
20 | ?> | |
21 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
22 | <html xmlns="http://www.w3.org/1999/xhtml"> | |
23 | <head> | |
24 | <title>Seff's Image Catcher</title> | |
25 | <meta http-equiv="content-type" content="text/html;charset=utf-8" /> | |
26 | </head> | |
27 | <body> | |
28 | - | <form name="imageCatcher" action="SID.php" method="POST"> |
28 | + | <form name="imageCatcher" method="POST"> |
29 | Select a Board:<br/> | |
30 | <select name="board"> | |
31 | <?php | |
32 | foreach($bArray as $b) | |
33 | { | |
34 | echo("<option value=\"$b\">$b</option>"); | |
35 | } | |
36 | ?> | |
37 | </select><br/><br/> | |
38 | Image ID with extension (ex: 1363032507873.png):<br/> | |
39 | <input type="text" name="id" /><br/><br/> | |
40 | Number of copies (default 1):<br/> | |
41 | <input type="text" name="copies" /><br/><br/> | |
42 | <input type="submit" value="Submit"> | |
43 | </form> | |
44 | </body> | |
45 | </html> | |
46 | <?php | |
47 | } else { | |
48 | ||
49 | //clean input data with regular expressions | |
50 | $board = preg_replace("/[^a-z]/", "", strtolower($_POST['board'])); | |
51 | $id = preg_replace("/[^0-9a-z\.]/","", $_POST['id']); | |
52 | $copies = preg_replace("/[^0-9]/","", $_POST['copies']); | |
53 | if($copies > 100){ $copies = 100; } | |
54 | if($copies < 1){ $copies = 1; } | |
55 | if(!is_numeric($copies)){ $copies = 1; } | |
56 | ||
57 | //set the thread url to load | |
58 | - | $url = "http://images.4chan.org/$board/src/$id"; |
58 | + | $url = "http://i.4cdn.org/$board/$id"; |
59 | ||
60 | //load the thread from the 4chan api, @ supresses any errors | |
61 | $image = @file_get_contents($url); | |
62 | if($image === false){ echo("Unable to load the image"); } else { | |
63 | ||
64 | //create an image resource | |
65 | $original = imagecreatefromstring($image); | |
66 | ||
67 | //repeat the following actions for each image | |
68 | for($i=0; $i<$copies; $i++) | |
69 | { | |
70 | ||
71 | //generate a copy of the same image resource | |
72 | $copy = imagecreatetruecolor(imagesx($original), imagesy($original)); | |
73 | imagesavealpha($copy, true); | |
74 | ||
75 | //make the background transparent | |
76 | $trans_color = imagecolorallocatealpha($copy, 0, 0, 0, 127); | |
77 | imagefill($copy, 0, 0, $trans_color); | |
78 | ||
79 | //give the image a random height/width | |
80 | $height1 = imagesy($original); | |
81 | $height2 = imagesy($original)+rand(1,5); | |
82 | $width1 = imagesx($original); | |
83 | $width2 = imagesx($original)+rand(1,5); | |
84 | //copy the original image into the copy resource with the new proportions | |
85 | imagecopyresized($copy,$original,0,0,0,0,$width2,$height2,$width1,$height1); | |
86 | ||
87 | //repeat the following actions for each modification of the image | |
88 | for($j=0; $j<=250; $j++) | |
89 | { | |
90 | //generate random coordinates for pixel replacement | |
91 | $pixelx = rand(0, imagesx($copy)); | |
92 | $pixely = rand(0, imagesy($copy)); | |
93 | ||
94 | //retrieve the current rgb values of that coordinate and modify them | |
95 | $rgb = imagecolorat($copy, $pixelx, $pixely); | |
96 | $r = ($rgb >> 16) & 0xFF; $r += rand(-5, 5); | |
97 | $g = ($rgb >> 8) & 0xFF; $g += rand(-5, 5); | |
98 | $b = $rgb & 0xFF; $b += rand(-5, 5); | |
99 | ||
100 | //clean the rgb values | |
101 | if($r > 255) { $r=255; } if($g > 255) { $g=255; } if($b > 255) { $b=255; } | |
102 | if($r < 0) { $r = 0; } if($g < 0) { $g = 0; } if($b < 0) { $b = 0; } | |
103 | ||
104 | //insert modified pixel color | |
105 | $color = imagecolorallocate($copy, $r, $g, $b); | |
106 | ||
107 | //modify a random pixel of the image copy | |
108 | imagesetpixel($copy, $pixelx, $pixely, $color); | |
109 | ||
110 | } | |
111 | ||
112 | //start buffering to cature image data | |
113 | ob_start(); | |
114 | //generate the image as a png | |
115 | imagepng($copy); | |
116 | //capture the image | |
117 | $contents = ob_get_contents(); | |
118 | //end buffering | |
119 | ob_end_clean(); | |
120 | //output the image | |
121 | echo "<img src='data:image/png;base64,".base64_encode($contents)."' />"; | |
122 | //clean the image | |
123 | imagedestroy($copy); | |
124 | ||
125 | } | |
126 | } | |
127 | } | |
128 | ?> |