PHP实现图片不变型裁剪及图片按比例裁剪的方法
程序员文章站
2023-10-31 14:37:46
本文实例讲述了php实现图片不变型裁剪及图片按比例裁剪的方法。分享给大家供大家参考,具体如下:
图片不变型裁剪
本文实例讲述了php实现图片不变型裁剪及图片按比例裁剪的方法。分享给大家供大家参考,具体如下:
图片不变型裁剪
<?php /** * imagecropper * @param string $source_path * @param string $target_width * @param string $target_height */ function imagecropper($source_path, $target_width, $target_height){ $source_info = getimagesize($source_path); $source_width = $source_info[0]; $source_height = $source_info[1]; $source_mime = $source_info['mime']; $source_ratio = $source_height / $source_width; $target_ratio = $target_height / $target_width; if ($source_ratio > $target_ratio){ // image-to-height $cropped_width = $source_width; $cropped_height = $source_width * $target_ratio; $source_x = 0; $source_y = ($source_height - $cropped_height) / 2; }elseif ($source_ratio < $target_ratio){ //image-to-widht $cropped_width = $source_height / $target_ratio; $cropped_height = $source_height; $source_x = ($source_width - $cropped_width) / 2; $source_y = 0; }else{ //image-size-ok $cropped_width = $source_width; $cropped_height = $source_height; $source_x = 0; $source_y = 0; } switch ($source_mime){ case 'image/gif': $source_image = imagecreatefromgif($source_path); break; case 'image/jpeg': $source_image = imagecreatefromjpeg($source_path); break; case 'image/png': $source_image = imagecreatefrompng($source_path); break; default: return ; break; } $target_image = imagecreatetruecolor($target_width, $target_height); $cropped_image = imagecreatetruecolor($cropped_width, $cropped_height); // copy imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height); // zoom imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $target_width, $target_height, $cropped_width, $cropped_height); header('content-type: image/jpeg'); imagejpeg($target_image); imagedestroy($source_image); imagedestroy($target_image); imagedestroy($cropped_image); } $filename = "8fcb7a0831b79c61.jpg"; imagecropper($filename,200,200); ?>
图片按比例裁剪
<?php /** * imagezoom * @param string $file * @param double $zoom */ function imagezoom($filename,$zoom=0.6){ //baseinfo $sourceimageinfo = getimagesize($filename); $sourcewidth = $sourceimageinfo[0]; $sourceheight = $sourceimageinfo[1]; $sourcemine = $sourceimageinfo['mime']; $sourceratio = $sourcewidth/$sourceheight; $sourcex = 0; $sourcey = 0; //zoom $targetratio = $zoom; //target-widht-height $targetwidth = $sourcewidth*$targetratio; $targetheight = $sourceheight*$targetratio; //init-params $sourceimage = null; switch($sourcemine){ case 'image/gif': $sourceimage = imagecreatefromgif($filename); break; case 'image/jpeg': $sourceimage = imagecreatefromjpeg($filename); break; case 'image/png': $sourceimage = imagecreatefrompng($filename); break; default: return ; break; } //temp-target-image $tempsourceimage = imagecreatetruecolor($sourcewidth, $sourceheight); $targetimage = imagecreatetruecolor($targetwidth,$targetheight); //copy imagecopy($tempsourceimage, $sourceimage, 0, 0, $sourcex, $sourcey, $sourcewidth, $sourceheight); //zoom imagecopyresampled($targetimage, $tempsourceimage, 0, 0, 0, 0, $targetwidth, $targetheight, $sourcewidth, $sourceheight); //header header('content-type: image/jpeg'); //image-loading imagejpeg($targetimage); //destroy imagedestroy($tempsourceimage); imagedestroy($sourceimage); imagedestroy($targetimage); } $filename = "8fcb7a0831b79c61.jpg"; imagezoom($filename); ?>
希望本文所述对大家php程序设计有所帮助。
上一篇: 无线网基础知识之你问我答