php比例算法,图片比例转换算法
項目要求將圖片上傳的任意圖片按固定比例進行轉換,沒辦法自己就寫了一個,代碼如下:
public function cropImage($imagePath, $savePath, $scale){
$imgHandler = $this->model('Picture_Model_Image');
$imgHandler->setSrcImg($imagePath);
$imgHandler->setCutType(2);//指明為手工裁切
list($scaleW, $scaleH) = explode(':', $scale);
$imgH = $imgHandler->src_h;
$imgW = $imgHandler->src_w;
if(($imgW / $scaleW * $scaleH) < $imgH){
$cropH = ($imgW / $scaleW * $scaleH);
$cropW = $imgW;
}else{
$cropW = $imgH / $scaleH * $scaleW;
$cropH = $imgH;
}
$cropInitX = ($imgW - $cropW) / 2;
$cropInitY = ($imgH - $cropH) / 2;
$imgHandler->setSrcCutPosition($cropInitX, $cropInitY);// 源圖起點座標
$imgHandler->setRectangleCut($cropW, $cropH);// 裁切尺寸
$imgHandler->setDstImg($savePath);
return $imgHandler->createImg($cropW, $cropH);
}
大概思路是這樣的:
cropW 和 cropH 是需要裁剪的圖片的大小,
cropInitX 和 cropInitY 是裁剪的初始位置,默認是取最中間的位置首先是根據圖片的寬, 按照比例算出 高按照比例的尺寸 ,如果算出的高, 比圖片的高大, 那么就
圖片的高, 按照比例算出 寬按照比例的尺寸。得到尺寸后, (用原圖的寬/裁剪后的寬)/2 就可以得到裁剪的X座標,依次類推。總結
以上是生活随笔為你收集整理的php比例算法,图片比例转换算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html编程入门指南,给萌新HTML5
- 下一篇: 动态规划算法php,php算法学习之动态