Je veux être en mesure de récupérer une image distante d'un serveur Web, rééchantillonner, puis servir au navigateur et de l'enregistrer dans un fichier. Voici ce que j'ai jusqu'à présent:Obtenir l'image à distance en utilisant cURL puis ré-échantillonner
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "$rURL");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab URL and pass it to the browser
$out = curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
$imgRes = imagecreatefromstring($out);
imagejpeg($imgRes, $filename, 70);
header("Content-Type: image/jpg");
imagejpeg($imgRes, NULL, 70);
exit();
Mise à jour
à jour pour refléter réponse basée sur la discussion ci-dessous
Merci ... J'ai mis à jour ma question avec votre info ... Cela nécessite deux nouveaux échantillons de l'image que par opposition à un seul .. encore une fois, il semble inefficace. Quelle est la meilleure façon de faire cela? – Chris
@Chris Deux rééchantillonnages de l'image? Pourquoi? Vous stockez la même ressource rééchantillonnée dans le fichier jpeg et le servez. Pourquoi feriez-vous le rééchantillonnage deux fois? –
Désolé, j'ai mal interprété ce que vous avez écrit. J'ai mis à jour le code dans ma question. Il crée le jpeg une fois avec une qualité inférieure. Vraisemblablement, cela suffit à réduire la taille du fichier? Après cela, je l'enregistre dans le fichier, mais pour le servir, je dois alors relire le fichier, puis-je le stocker temporairement en mémoire ou est-ce un surcoût négligeable? – Chris