Quelqu'un peut-il me dire comment je peux résoudre le problème suivant:Redimensionner l'image en php après file_get_contents
include('php/resizeImage.php');
if($_POST['uploadlink']){
$url = $_POST['uploadlink'];
$urlImage = file_get_contents($url);
if ($_POST['filename']){
$filename = $_POST['filename'].".jpg";
} else {
$urlinfo = parse_url($url);
$filename = basename($urlinfo['path']);
}
$image = new ResizeImage();
$image->load($filename);
$image->resizeToWidth(300);
$image->save($filename);
file_put_contents("images/upload/".$filename, $urlImage);
}
Après avoir reçu les données d'image à partir file_get_contents à partir d'une URL que je veux le redimensionner dans mon script resizeImage qui prend le nom de fichier de l'image en paramètre.
Edit: fonction ResizeImage charge et resizeToWidth:
function load($filename) {
$image_info = getimagesize($filename);
$this->image_type = $image_info[2];
if($this->image_type == IMAGETYPE_JPEG) {
$this->image = imagecreatefromjpeg($filename);
} elseif($this->image_type == IMAGETYPE_GIF) {
$this->image = imagecreatefromgif($filename);
} elseif($this->image_type == IMAGETYPE_PNG) {
$this->image = imagecreatefrompng($filename);
}
}
function resizeToWidth($width) {
$ratio = $width/$this->getWidth();
$height = $this->getheight() * $ratio;
$this->resize($width,$height);
}
je n'ai pas du mal à le faire lorsque l'utilisateur sélectionne une image locale par input type = 'fichier'.
if (isset($_FILES["uploadedfile"])){
$ufilename = $_FILES["uploadedfile"]["name"];
$ufiletmpname = $_FILES["uploadedfile"]["tmp_name"];
$image = new ResizeImage();
$image->load($ufiletmpname);
$image->resizeToWidth(300);
$image->save($ufiletmpname);
}
Un autre problème: Je transmets le nom de l'utilisateur à mon script parce que je veux créer un dossier individuel pour chaque utilisateur, de sorte qu'ils ne peuvent voir leurs propres images téléchargées.
$admin = $_GET['admin'];
file_put_contents("images/upload/".$admin."/".$filename, $urlImage);
Pourquoi cela ne fonctionne-t-il pas pour moi?
Merci.
Je vais essayer ça. Merci. ResizeImage est la classe "my own". J'ai inséré la fonction load et resizeToWidth dans l'original msg –
Est ne fonctionne pas. Je peux redimensionner l'image après avoir créé imagecreatefromstring mais je ne peux pas utiliser file_put_contents avec l'image $ comme paramètre. –
Vous n'avez pas besoin d'utiliser 'file_put_contents()'. Utilisez 'imagepng ($ image, $ filename);' à la place. Vous devriez également lire les documents PHP sur cette extension ... – Christian