transparentPaintImage("rgb(247, 247, 247)", 0, $fuzz, false); } $imagick->setImageFormat('png'); $imagick->writeImage($uploadFile); $imagick->clear(); $imagick->destroy(); unlink($tempFile); return true; } else { return false; } } function resizeAndUploadLogo($uploadedFile, $uploadDir, $name) { $targetWidth = 70; $targetHeight = 48; $timestamp = time(); $originalFileName = $uploadedFile['name']; $fileExtension = pathinfo($originalFileName, PATHINFO_EXTENSION); $fileName = $timestamp . '-payments-' . sanitizeFilename($name) . '.' . $fileExtension; $uploadFile = $uploadDir . $fileName; if (move_uploaded_file($uploadedFile['tmp_name'], $uploadFile)) { $fileInfo = getimagesize($uploadFile); if ($fileInfo !== false) { $width = $fileInfo[0]; $height = $fileInfo[1]; // Load the image based on its format if ($fileExtension === 'png') { $image = imagecreatefrompng($uploadFile); } elseif ($fileExtension === 'jpg' || $fileExtension === 'jpeg') { $image = imagecreatefromjpeg($uploadFile); } else { // Handle other image formats as needed return ""; } // Enable alpha channel (transparency) for PNG images if ($fileExtension === 'png') { imagesavealpha($image, true); } $newWidth = $width; $newHeight = $height; if ($width > $targetWidth) { $newWidth = $targetWidth; $newHeight = ($targetWidth / $width) * $height; } if ($newHeight > $targetHeight) { $newWidth = ($targetHeight / $newHeight) * $newWidth; $newHeight = $targetHeight; } $resizedImage = imagecreatetruecolor($newWidth, $newHeight); imagesavealpha($resizedImage, true); $transparency = imagecolorallocatealpha($resizedImage, 0, 0, 0, 127); imagefill($resizedImage, 0, 0, $transparency); imagecopyresampled($resizedImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); if ($fileExtension === 'png') { imagepng($resizedImage, $uploadFile); } elseif ($fileExtension === 'jpg' || $fileExtension === 'jpeg') { imagejpeg($resizedImage, $uploadFile); } else { return ""; } imagedestroy($image); imagedestroy($resizedImage); return $fileName; } } return ""; } if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) { if ($_SERVER["REQUEST_METHOD"] === "POST") { $enabled = 1; $name = validate($_POST["paymentname"]); $iconUrl = validate($_POST['icon-url']); if ($name === "" || ($iconUrl === "" && empty($_FILES['paymenticon']['name']))) { $response = [ "success" => false, "errorMessage" => translate('fill_all_fields', $i18n) ]; echo json_encode($response); exit(); } $icon = ""; if($iconUrl !== "") { $icon = getLogoFromUrl($iconUrl, '../../images/uploads/logos/', $name); } else { if (!empty($_FILES['paymenticon']['name'])) { $fileType = mime_content_type($_FILES['paymenticon']['tmp_name']); if (strpos($fileType, 'image') === false) { $response = [ "success" => false, "errorMessage" => translate('fill_all_fields', $i18n) ]; echo json_encode($response); exit(); } $icon = resizeAndUploadLogo($_FILES['paymenticon'], '../../images/uploads/logos/', $name); } } $sql = "INSERT INTO payment_methods (name, icon, enabled) VALUES (:name, :icon, :enabled)"; $stmt = $db->prepare($sql); $stmt->bindParam(':name', $name, SQLITE3_TEXT); $stmt->bindParam(':icon', $icon, SQLITE3_TEXT); $stmt->bindParam(':enabled', $enabled, SQLITE3_INTEGER); if ($stmt->execute()) { $success['success'] = true; $success['message'] = translate('payment_method_added_successfuly', $i18n); $json = json_encode($success); header('Content-Type: application/json'); echo $json; exit(); } else { echo translate('error', $i18n) . ": " . $db->lastErrorMsg(); } } } $db->close(); ?>