从一个URL获取图片然后展示的PHP代码
2018-07-20 来源:open-open
这个代码使用 cURL来取得一张图片,然后在页面上展示它的缩略图。但不保存。
<?php //$url = "http://share.meebo.com/content/katy_perry/wallpapers/3.jpg"; $url = $_GET['url']; $url = str_replace("http:/","http://",$url); $allowed = array('jpg','gif','png'); $pos = strrpos($_GET['url'], "."); $str = substr($_GET['url'],($pos + 1)); $ch = curl_init(); $timeout = 0; curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // Getting binary data curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); $image = curl_exec($ch); curl_close($ch); // output to browser $im = @imagecreatefromstring($image); $tw = @imagesx($im); if(!$tw){ // Font directory + font name $font = '../../fonts/Austrise.ttf'; // Size of the font $fontSize = 18; // Height of the image $height = 32; // Width of the image $width = 250; // Text $str = 'Couldn\'t get image.'; $img_handle = imagecreate ($width, $height) or die ("Cannot Create image"); // Set the Background Color RGB $backColor = imagecolorallocate($img_handle, 255, 255, 255); // Set the Text Color RGB $txtColor = imagecolorallocate($img_handle, 20, 92, 137); $textbox = imagettfbbox($fontSize, 0, $font, $str) or die('Error in imagettfbbox function'); $x = ($width - $textbox[4])/2; $y = ($height - $textbox[5])/2; imagettftext($img_handle, $fontSize, 0, $x, $y, $txtColor, $font , $str) or die('Error in imagettftext function'); header('Content-Type: image/jpeg'); imagejpeg($img_handle,NULL,100); imagedestroy($img_handle); }else{ if($str == 'jpg' || $str == 'jpeg') header("Content-type: image/jpeg"); if($str == 'gif') header("Content-type: image/gif"); if($str == 'png') header("Content-type: image/png"); $th = imagesy($im); $thumbWidth = 200; if($tw <= $thumbWidth){ $thumbWidth = $tw; } $thumbHeight = $th * ($thumbWidth / $tw); $thumbImg = imagecreatetruecolor($thumbWidth, $thumbHeight); if($str == 'gif'){ $colorTransparent = imagecolortransparent($im); imagefill($thumbImg, 0, 0, $colorTransparent); imagecolortransparent($thumbImg, $colorTransparent); } if($str == 'png'){ imagealphablending($thumbImg, false); imagesavealpha($thumbImg,true); $transparent = imagecolorallocatealpha($thumbImg, 255, 255, 255, 127); imagefilledrectangle($thumbImg, 0, 0, $thumbWidth, $thumbHeight, $transparent); } imagecopyresampled($thumbImg, $im, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $tw, $th); if($str == 'jpg' || $str == 'jpeg'){ imagejpeg($thumbImg, NULL, 100); } if($str == 'gif'){ imagegif($thumbImg); } if($str == 'png'){ imagealphablending($thumbImg,TRUE); imagepng($thumbImg, NULL, 9, PNG_ALL_FILTERS); } imagedestroy($thumbImg); } ?>
标签: 代码
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最新资讯
热门推荐