get image from url and display it
Scris: Lun Feb 16, 2015
Salut, doresc să i-au o imagine din url și să o afișez. Până acum am ajuns la rezultatul de mai jos dar am anumite probleme.
1) doresc să nu salveze imaginea in cache (cred că am rezolvat această problemă, dar nu sunt sigur)
2) doresc doar jpg/png/gif să fie valide, pentru restul extensiilor să dea o eroare
3) vreau ca în cazul în care imaginile au background transparent să fie transparent, momentan nu apare transparent
4) în cazul imaginilor .gif animate, animația nu merge (știu că gd nu suportă animații, dar nu știu altă metodă)
Sunt începător în domeniu, pe net am găsit informații cât să fac ceea ce am făcut până acum, sigur sunt informații și pentru ceea ce vreau dar nu știu cum să mă folosesc de ele, de aceea vă cer ajutorul vouă!
1) doresc să nu salveze imaginea in cache (cred că am rezolvat această problemă, dar nu sunt sigur)
2) doresc doar jpg/png/gif să fie valide, pentru restul extensiilor să dea o eroare
3) vreau ca în cazul în care imaginile au background transparent să fie transparent, momentan nu apare transparent
4) în cazul imaginilor .gif animate, animația nu merge (știu că gd nu suportă animații, dar nu știu altă metodă)
Cod: Selectaţi tot
<?php
$url = $_GET['url'];
$allowed = array('jpg','gif','png');
$extension = pathinfo($url, PATHINFO_EXTENSION);
if(in_array($extension, $allowed)){
$ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$image = curl_exec($ch);
curl_close($ch);
if ($extension == 'jpg' || $extension == 'jpeg') {
header("Content-type: image/jpeg");
}
else if ($extension == 'png') {
header("Content-type: image/png");
}
else if ($extension == 'gif') {
header("Content-type: image/gif");
}
$im = imagecreatefromstring($image);
$tw = imagesx($im);
$th = imagesy($im);
if ($extension == 'jpg' || $extension == 'jpeg') {
imagealphablending($im,TRUE);
imagejpeg($im, NULL, 100);
}
else if ($extension == 'png') {
imagealphablending($im,TRUE);
imagepng($im, NULL, 9, PNG_ALL_FILTERS);
}
else if ($extension == 'gif') {
imagegif($im);
}
//imagealphablending($im,TRUE);
//imagepng($im, NULL, 9, PNG_ALL_FILTERS);
//imagejpeg($im, NULL, 100);
imagedestroy($im);
}
?>