PHP實(shí)現(xiàn)圖片不變型裁剪及圖片按比例裁剪的方法
本文實(shí)例講述了PHP實(shí)現(xiàn)圖片不變型裁剪及圖片按比例裁剪的方法。分享給大家供大家參考,具體如下:
圖片不變型裁剪
<?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程序設(shè)計有所幫助。
- php截取視頻指定幀為圖片
- PHP截取指定圖片大小的方法
- php+js實(shí)現(xiàn)圖片的上傳、裁剪、預(yù)覽、提交示例
- php使用imagick模塊實(shí)現(xiàn)圖片縮放、裁剪、壓縮示例
- PHP圖片裁剪函數(shù)(保持圖像不變形)
- php圖片的裁剪與縮放生成符合需求的縮略圖
- PHP圖片自動裁切應(yīng)付不同尺寸的顯示
- PHP 裁剪圖片成固定大小代碼方法
- PHP結(jié)合JQueryJcrop實(shí)現(xiàn)圖片裁切實(shí)例詳解
- PHP Imagick完美實(shí)現(xiàn)圖片裁切、生成縮略圖、添加水印
- PHP實(shí)現(xiàn)圖片裁剪、添加水印效果代碼
- php結(jié)合imgareaselect實(shí)現(xiàn)圖片裁剪
- PHP全功能無變形圖片裁剪操作類與用法示例
- php實(shí)現(xiàn)圖片按比例截取的方法
相關(guān)文章
整理的一些實(shí)用WordPress后臺MySQL操作命令
WordPress將其所有信息片段(包括文章、頁面、評論、博客鏈接、插件設(shè)置等)存儲在MySQL數(shù)據(jù)庫中。 雖然WordPress用戶可以通過網(wǎng)站后臺編輯控制以上信息片段2013-01-01php實(shí)現(xiàn)有序數(shù)組打印或排序的方法【附Python、C及Go語言實(shí)現(xiàn)代碼】
這篇文章主要介紹了php實(shí)現(xiàn)有序數(shù)組打印或排序的方法,涉及php針對數(shù)組的遍歷、判斷、構(gòu)造與合并等常用操作技巧,并附帶了Python、C及Go語言的實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-11-11基于php常用函數(shù)總結(jié)(數(shù)組,字符串,時間,文件操作)
本篇文章是對php常用函數(shù)(數(shù)組,字符串,時間,文件操作)進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友參考下2013-06-06PHP截取漢字亂碼問題解決方法mb_substr函數(shù)的應(yīng)用
利用mb_substr截取字符串不會出現(xiàn)亂碼問題,高手可以飛過......2008-03-03php基于session實(shí)現(xiàn)數(shù)據(jù)庫交互的類實(shí)例
這篇文章主要介紹了php基于session實(shí)現(xiàn)數(shù)據(jù)庫交互的類,實(shí)例分析了php結(jié)合session操作數(shù)據(jù)庫的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08php使用ZipArchive提示Fatal error: Class ZipArchive not found in的
這篇文章主要介紹了php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解決方法,是使用ZipArchive時經(jīng)常會遇到的問題,需要的朋友可以參考下2014-11-11