<?php
function redimensionarImagenFanatec($url, $anchoDeseado, $altoDeseado) {
    // Crear una imagen desde la URL
    $original = @imagecreatefromstring(file_get_contents($url));
    if (!$original) {
        return false; // Si no se puede crear la imagen, retornar false
    }

    // Obtener el tamaño original de la imagen
    list($anchoOriginal, $altoOriginal) = getimagesize($url);

    // Calcular la relación de aspecto
    $relacionAspectoOriginal = $anchoOriginal / $altoOriginal;
    $relacionAspectoDeseada = $anchoDeseado / $altoDeseado;

    // Determinar las dimensiones finales manteniendo la relación de aspecto
    if ($relacionAspectoOriginal >= $relacionAspectoDeseada) {
        $anchoFinal = $anchoDeseado;
        $altoFinal = $anchoDeseado / $relacionAspectoOriginal;
    } else {
        $anchoFinal = $altoDeseado * $relacionAspectoOriginal;
        $altoFinal = $altoDeseado;
    }

    // Crear una imagen en blanco con las dimensiones deseadas y color de fondo personalizado
    $imagenRedimensionada = imagecreatetruecolor($anchoDeseado, $altoDeseado);

    // Rellenar la imagen en blanco con el color personalizado (#21212B)
    $fondoColor = imagecolorallocate($imagenRedimensionada, 33, 33, 43);
    imagefill($imagenRedimensionada, 0, 0, $fondoColor);

    // Calcular las coordenadas para centrar la imagen
    $x = ($anchoDeseado - $anchoFinal) / 2;
    $y = ($altoDeseado - $altoFinal) / 2;

    // Redimensionar la imagen original y pegarla en la imagen con fondo
    imagecopyresampled($imagenRedimensionada, $original, $x, $y, 0, 0, $anchoFinal, $altoFinal, $anchoOriginal, $altoOriginal);

    // Guardar la imagen redimensionada en una variable temporal
    ob_start();
    imagejpeg($imagenRedimensionada);
    $imagenFinal = ob_get_contents();
    ob_end_clean();

    // Liberar memoria
    imagedestroy($original);
    imagedestroy($imagenRedimensionada);

    return $imagenFinal;
}
?>
