Am testat link-ul, in Mozilla Firefox si Internet Explorer se salveaza cu extensia PNG, data de header() din cod, dar in Google Chrome se salveaza cu ".php", dupa numele ce apare in bara de adrese
Din asta inteleg ca e ceva ce depinde de browser, nu de script-ul php. Deoarece imaginea nefiind fizic salvata si preluata de pe server, ia nu are un nume al ei, ci e numele din browser, pe care il recunosc diferit.
In scriptul tau, imaginea e creata ca tip PNG, daca vrei JPG, acesta e codul, modificat pt. JPG. Dar la fel, depide de browser la Save As.
Cod: Selectaţi tot
<?php
// Load the stamp and the photo to apply the watermark to
$stamp = imagecreatefrompng('https://lh6.googleusercontent.com/-uC_SLcVBjbQ/T7DmAmSLaNI/AAAAAAAAD0c/xChsHROTLgE/s229/I-Am-Nobody-Facebook-Timeline-Cover-Funny-Text-Facebook-Covers.png');
$im = imagecreatefromjpeg('http://coverjunction.s3.amazonaws.com/manual/low/colorful4.jpg');
// Set the margins for the stamp and get the height/width of the stamp image
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
// Copy the stamp image onto our photo using the margin offsets and the photo
// width to calculate positioning of the stamp.
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));
// Output and free memory
header('Content-type: image/jpeg');
imagejpeg($im);
imagedestroy($im);
?>
O solutie ca sa se salveze cu extensia ".jpg" e ca intai sa salvezi imaginea pe server, apoi sa faci redirect la ea, pentru asta, inlocuieste codul:
Cod: Selectaţi tot
header('Content-type: image/jpeg');
imagejpeg($im);
imagedestroy($im);
Cu acesta:
Cod: Selectaţi tot
imagejpeg($im, 'dirimgs/nume.jpg');
imagedestroy($im);
header('Location: dirimgs/nume.jpg');
- "dirimgs" e directorul in care sa fie salvata imaginea. Daca serverul e pe sistem Unix/Linux, PHP trebuie sa aibe permisiuni CHMOD de scriere in acest director.