From 0d821e9b9de4e5aceef7da4b0fce59c4eebd9e6b Mon Sep 17 00:00:00 2001 From: revengeday Date: Sat, 6 Jul 2024 16:13:13 +0000 Subject: [PATCH] Add script.php --- script.php | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 script.php diff --git a/script.php b/script.php new file mode 100644 index 0000000..407fb27 --- /dev/null +++ b/script.php @@ -0,0 +1,78 @@ + 253, 'green' => 252, 'blue' => 1]; // Color for the main text +$secondaryTextColorRGB = ['red' => 0, 'green' => 255, 'blue' => 0]; // Color for the secondary text +$numberColorRGB = ['red' => 255, 'green' => 255, 'blue' => 255]; // Color for the counter number +$frameColorRGB = ['red' => 255, 'green' => 238, 'blue' => 0]; // Color for the frame +$drawFrame = true; // Boolean to toggle drawing a frame around the image + +// Increment the visit counter stored in the counter file +if (!file_exists($counterFile)) { + file_put_contents($counterFile, "0"); // If the file does not exist, create it with an initial value of 0 +} +$number = (int)file_get_contents($counterFile); // Read the current count from the file +$number++; // Increment the counter by 1 +file_put_contents($counterFile, (string)$number); // Write the new count back to the file + +// Load the background image and determine its type (JPEG or PNG) +list($width, $height, $type) = getimagesize($backgroundImageUrl); // Get image dimensions and type +switch ($type) { + case IMAGETYPE_JPEG: + $backgroundImage = imagecreatefromjpeg($backgroundImageUrl); // Load JPEG image + break; + case IMAGETYPE_PNG: + $backgroundImage = imagecreatefrompng($backgroundImageUrl); // Load PNG image + break; + default: + die("Unsupported image format: " . $backgroundImageUrl); // Terminate script if image format is not supported +} + +// Allocate colors for the text and frame on the image +$frameColor = imagecolorallocate($backgroundImage, $frameColorRGB['red'], $frameColorRGB['green'], $frameColorRGB['blue']); +$textColor = imagecolorallocate($backgroundImage, $textColorRGB['red'], $textColorRGB['green'], $textColorRGB['blue']); +$secondaryTextColor = imagecolorallocate($backgroundImage, $secondaryTextColorRGB['red'], $secondaryTextColorRGB['green'], $secondaryTextColorRGB['blue']); +$numberColor = imagecolorallocate($backgroundImage, $numberColorRGB['red'], $numberColorRGB['green'], $numberColorRGB['blue']); + +// Optionally draw a rectangular frame around the entire image +if ($drawFrame) { + imagerectangle($backgroundImage, 0, 0, $width - 1, $height - 1, $frameColor); // Draw the frame +} + +// Add the main text, secondary text, and counter number to the image +imagestring($backgroundImage, 3, $textPositionX, $textPositionY, $customText, $textColor); // Draw main text +if (!empty($secondaryText)) { + imagestring($backgroundImage, 3, $secondaryTextPositionX, $secondaryTextPositionY, $secondaryText, $secondaryTextColor); // Draw secondary text if provided +} +imagestring($backgroundImage, 3, $numberPositionX, $numberPositionY, (string)$number, $numberColor); // Draw counter number + +// Output the final image as a PNG file +imagepng($backgroundImage, $imageFile); // Save the image to a file +imagedestroy($backgroundImage); // Free up memory used by the image + +// Set headers for browser to interpret the output as an image +header('Content-Type: image/png'); // MIME type for PNG image +header('Content-Disposition: filename="' . $imageFile . '"'); // Suggested filename for download +readfile($imageFile); // Output the image file + +// For more information, refer to the Git repository: +// https://git.cyberwa.re/revengeday/hit-counter/src/branch/main +?> \ No newline at end of file