Découpe et redimensionnement images pour envoi email

Bonjour,
j'aurais besoin d'une petite aide informatique, cela peut aider d'autres quand on navigue hors couverture réseau.
Mon but: télécharger une image d'internet, la reduire en taille , si possible en découper un morceau fixe (coordonnées en pixel fixes), la publier sur un site personnel (pour moi blogspot), de façon à pouvoir la télécharger avec une interrogation email via radio/telsat. Tout cela en automatique, sans que je sois là.

AVec plus de mots:
Il y a plusieurs images publiées sur internet qui peuvent être utiles à bord (je pense essentiellement aux images météo), en faisant des requêtes par email. Email via radio ou satellite, donc leur taille doit être de l'ordre de 10-20-30... disons quelques dizaines de ko.
Beaucoup d'images ont des tailles sensiblement plus grandes: couvrent en partie des zones géographiques qui ne nous intéressent pas, ont une taille en pixel qui couvre deux trois écrans donc absolument pas nécéssaire, et un niveau de définition/densité de grain qui aussi peut ne pas être strictement nécéssaire.
Ce sont des images qui sont mises à jour regulièrement, pour lesquelles on peut trouver des adresses internet "fixes".
J'ai un petit blog sur blogspot, si je télécharge une image sur le site Eumetsat par exemple et la publie sur mon blog, je peux en modifier la taille avec laquelle elle apparaît sur ma page, mais si j'ouvre l'image "Ouvrir l'image dans un autre onglet" elle ressort avec la taille originale; idem si je fais une requête email on me renvoie l'image originale qui bien sûr est beaucoup trop grosse pour une liaison satellite/radio.

Bref je voudrais une routine automatique pour l'équivalent de prendre chaque jour par exemple une image Eumetsat, l'enregistrer, l'ouvrir avec Paint et faire re-size + crop, enregistrer cette version modifiée, publier cette version sur mon site: tout cela en automatique, sans mon intervention. Quand je fais l'interrogation par email j'ai un lien qui pointe vers cette image modifiée et me permet de la récuperer.

Cela devrait être faisable mais aucune idée comment m'y prendre.
Sur blogspot on peut créer des éléments avec des script html, j'ai essayé quelques trucs trouvés sur internet mais sans résultat.

Exemple
à cette adresse je peux recuperer la grosse image qui fait 55ko
www.nrlmry.navy.mil[...]_24.gif
Après l'avoir reduite de 50% et découpée j'obtient la "petite" qui fait 19ko

L'équipage
04 juil. 2021
04 juil. 2021

Bonjour
Regarde XnConvert

www.xnview.com[...]onvert/


roberto:Merci Courtox,j'ai regardé un peu mais cela requiert l'intervention de quelqu'un, on ne peut pas l'automatiser pour qu'il publie tout seul dans le blog, etc etc.·le 04 juil. 2021 17:36
04 juil. 2021

salut
si c'est pour intégrer ta manip sur un blog type blogspot ou autre ou sur un site il faut coder donc avoir accès au code ou si c'est un CMS connaitre toutes les possibilités de ce CMS.
il faut donc des infos précises sur ton type de blog, si il est CMS ou accès code, type de code etc...
bref ta question ressort plus d'un forum développeur ou éventuellement du forum propre à ton type de blog. (blogspot étant édité par Google mais aussi exploité par diverses sociétés, il faudrait trouver un forum correspondant à ton type de blog, facile à trouver !)
ici on va t'indiquer comment convertir/recadrer/etc... des images mais difficilement le code à intégrer dans ton blog ou les fonctions du CMS pour que tu ais le résultat désiré ! pour cela il faudrait que tu tombes sur un héossien qui ait le même type/CMS de blog que toi et qui sache le coder ou se servir du CMS.
tu me comprends ?


roberto:Merci Quizas, oui je vois; j'ai essayé de lire par ici et par là les forum développeurs mais cela part très vite dans un langage trop compliqué pour moi. Sur les forum blogspot on trouve beaucoup mais pour des manipulations d'affichage d'une image tirée d'un lien internet, mais juste l'affichage, l'image-source elle même reste inchangée.·le 04 juil. 2021 17:32
04 juil. 2021

Bonjour,
Ce n'est pas compliqué à faire mais ça nécessite des connaissances en développement. Essaye de trouver un copain qui travaille dans l'informatique, il te fera ça.
Je n'ai pas le temps maintenant mais je me plongerai dessus à la rentrée car ça peut en effet intéresser certain.


05 juil. 2021

Merci entre-cotes.
Entretemps j'ai trouvé ceci, rélativement simple et qui s'approche du but recherché:
Quand on prend une image chargée sur blogger, par exemple cette image satellitaire (joli courant jet :D )
on voit que dans l'adresse se cache un /s1600/ , c'est une partie qui définit la dimension de l'image qui est téléchargée, si je laisse ce /s1600/ et je télécharge l'image, je l'obtient (pratiquement) en taille réelle, qui fait environ 350ko
1.bp.blogspot.com[...]529.jpg

je peux modifier ce /s1600/ avec des valeurs au choix de largeur et hauteur de pixels, exemple ici avec /w484-h339/ on définit largeur 484 pixel et hauteur 339 pixel, on télécharge donc une image de 75ko (encore grosse mais bon, pour rendre l'idée)
1.bp.blogspot.com[...]529.jpg

Si j'ai bien compris il y a des instructions similaires pour en plus découper la zone de pixels qui intéresse.
Le problème est que cette manip est possible seulement avec des images qui sont enregistrées comme images personnelles, et apparemment Blogger n'a pas la fonctionnalité automatique de télécharger une image dans un site et la rendre "personnelle".


22 fév. 202522 fév. 2025

Bonjour,

Pour moins t'embeter, tu pourrais si tu as la main sur le html le modifier de la facon suivante

Ainsi tu gardes toujours ton image initiale c'est juste la façon de l'afficher qui va changer

```
.crop {
width: 200px;
height: 150px;
overflow: hidden;
}

.crop img {
width: 400px;
height: 300px;
margin: -75px 0 0 -100px;
}

```

Idéalement si l'adresse de l'image sur le site tiers ne change pas tout les jours et bien dans ce cas tu n'as plus rien à faire du tout, mais bon c'est la théorie ;)


23 fév. 202523 fév. 2025

Merci beaucoup pour ces elements j ai bien note, la prochaine fois que j ai la main sur un des copains de ma fille je le mets au boulot :)
Ou bien ''dasboat'' va le faire pour nous (moi en tout cas)
www.hisse-et-oh.com[...]a-voile


24 fév. 2025

Est ce que tu connais ImageMagik, ou convert :
index.php
c'est un magnifique couteau suisse pour les images.


04 mars 2025

@Lithops, j'allais le dire ;-)
en décomposant ton besoin Roberto, je partirais sur un script php (il faut un serveur pour le faire tourner, ce peut être un NAS ou un hébergeur gratuit)
- récupérer une image d'après sont URL : statique? (image.jpg) ou facilement adressable en faisant varier la date (Image2025-02.jpg, Image2025-02.jpg... )
- redimensionner avec Image Magick ou autre lib équivalent, selon coordonnées en XY
- éventuellement réduire le poids en ajustant le format de l'image (probablement en PNG, réduire le nb de couleurs..)
- uploader en FTP sur un site ou envoyer par mail

En écrivant celà, je me dis que le mieux est demander à "quelqu'un" de te le faire gratuitement en 10 secondes...
Donc voici une ébauche (non testée), assez lisible et commentée...
Pour faire vite j'ai demandé à Chat GPT, mais j'aurais du demander à mistral


04 mars 202504 mars 2025

Voici un script PHP simple qui :
1. Récupère une image depuis une URL
2. Redimensionne et recadre l’image
3. Upload l’image via FTP
4. Envoie l’image en pièce jointe par email
Pré-requis
Extension GD pour manipuler les images
Accès FTP (hôte, utilisateur, mot de passe)

Un serveur SMTP pour envoyer l’email

Code PHP :
ATTENTION , le formatage HEO a pu inclure des erreurs....

<?php
// Paramètres
$imageUrl = "example.com[...]age.jpg "; // URL de l'image
$cropX = 100; // Coordonnée X pour le crop
$cropY = 50; // Coordonnée Y pour le crop
$cropWidth = 200; // Largeur du crop
$cropHeight = 200; // Hauteur du crop
$ftpServer = "ftp.example.com";
$ftpUser = "ftpuser";
$ftpPassword = "ftp
password";
$remoteFilePath = "uploads/imagecropped.jpg";
$recipientEmail = "destinataire@example.com";
// 1. Télécharger l'image
$imageContent = file
getcontents($imageUrl);
if (!$imageContent) {
die("Erreur : Impossible de télécharger l'image.");
}
// Sauvegarde temporaire
$tempFile = tempnam(sys
gettempdir(), 'img') . ".jpg";
fileputcontents($tempFile, $imageContent);
// 2. Redimensionner et croper l’image
$original = imagecreatefromjpeg($tempFile);
if (!$original) {
die("Erreur : Impossible de charger l'image.");
}
$cropped = imagecreatetruecolor($cropWidth, $cropHeight);
imagecopyresampled($cropped, $original, 0, 0, $cropX, $cropY, $cropWidth, $cropHeight, $cropWidth, $cropHeight);
// Sauvegarde de l’image croppée
$croppedFile = tempnam(sysgettempdir(), 'cropped') . ".jpg";
imagejpeg($cropped, $croppedFile, 90);
imagedestroy($original);
imagedestroy($cropped);
// 3. Upload en FTP
$conn = ftp
connect($ftpServer);
if (!$conn) {
die("Erreur : Connexion FTP échouée.");
}
$login = ftplogin($conn, $ftpUser, $ftpPassword);
if (!$login) {
die("Erreur : Connexion FTP incorrecte.");
}
ftp
put($conn, $remoteFilePath, $croppedFile, FTPBINARY);
ftp
close($conn);
// 4. Envoi de l’image par email
$boundary = md5(time());
$headers = "From: webmaster@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$message = "--$boundary\r\n";
$message .= "Content-Type: text/plain; charset=UTF-8\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$message .= "Voici l'image redimensionnée.\r\n\r\n";
// Lire le fichier et l'ajouter à l'email
$fileContent = chunksplit(base64encode(filegetcontents($croppedFile)));
$message .= "--$boundary\r\n";
$message .= "Content-Type: image/jpeg; name=\"imagecropped.jpg\"\r\n";
$message .= "Content-Disposition: attachment; filename=\"image
cropped.jpg\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n\r\n";
$message .= $fileContent . "\r\n";
$message .= "--$boundary--";
// Envoi du mail
mail($recipientEmail, "Image modifiée", $message, $headers);
// Nettoyage des fichiers temporaires
unlink($tempFile);
unlink($croppedFile);
echo "Processus terminé avec succès.";
?>


Explication du script
1. Télécharge l'image avec filegetcontents().
2. Recadre l’image avec imagecopyresampled().
3. Upload via FTP avec ftp_put().
4. Envoi par email avec mail(), en ajoutant l’image en pièce jointe.


Limitations
L’extension GD doit être activée.
mail() dépend de la configuration du serveur. Pour un envoi fiable, utilisez PHPMailer avec SMTP.

Supporte uniquement les images JPEG, mais peut être adapté pour PNG ou GIF.


Phare de Pulau Langkuas, Au nord ouest de l'île de Belitung en Indonésie

Phare du monde

  • 4.5 (29)

Phare de Pulau Langkuas, Au nord ouest de l'île de Belitung en Indonésie

2022