PHP图片裁剪、缩放

2014-03-22 19:39:56

根据自定义的目标图, 按目标图高宽比裁剪、缩放源图.

传入参数:

$source_path string 源图路径

$target_width integer 目标图宽度

$target_height integer 目标图高度

支持图片类型: image/gif, image/jpeg, image/png.

function imagecropper($sourcepath, $targetwidth, $targetheight) { $sourceinfo = getimagesize($sourcepath); $sourcewidth = $sourceinfo[0]; $sourceheight = $sourceinfo[1]; $sourcemime = $sourceinfo['mime']; $sourceratio = $sourceheight / $sourcewidth; $targetratio = $targetheight / $targetwidth; // 源图过高 if ($sourceratio > $targetratio) { $croppedwidth = $sourcewidth; $croppedheight = $sourcewidth * $targetratio; $sourcex = 0; $sourcey = ($sourceheight - $croppedheight) / 2; } // 源图过宽 elseif ($sourceratio < $targetratio) { $croppedwidth = $sourceheight / $targetratio; $croppedheight = $sourceheight; $sourcex = ($sourcewidth - $croppedwidth) / 2; $sourcey = 0; } // 源图适中 else { $croppedwidth = $sourcewidth; $croppedheight = $sourceheight; $sourcex = 0; $sourcey = 0; } switch ($sourcemime) { case 'image/gif': $sourceimage = imagecreatefromgif($sourcepath); break; case 'image/jpeg': $sourceimage = imagecreatefromjpeg($sourcepath); break; case 'image/png': $sourceimage = imagecreatefrompng($sourcepath); break; default: return false; break; } $targetimage = imagecreatetruecolor($targetwidth, $targetheight); $croppedimage = imagecreatetruecolor($croppedwidth, $croppedheight); // 裁剪 imagecopy($croppedimage, $sourceimage, 0, 0, $sourcex, $sourcey, $croppedwidth, $croppedheight); // 缩放 imagecopyresampled($targetimage, $croppedimage, 0, 0, 0, 0, $targetwidth, $targetheight, $croppedwidth, $croppedheight); header('Content-Type: image/jpeg'); imagejpeg($targetimage); imagedestroy($sourceimage); imagedestroy($targetimage); imagedestroy($croppedimage); }

军博一行人等

应近代史老师的要求,我等男女各五六人等前往军事博物馆参观。任务之余,游玩嬉戏,不胜欢喜,却是后话。 先是参观各种作战兵器: 103330" title="" /> 103433" title="" /> 103553" title="" /> 103942" title="" /> 104122" title="" /> 104206" title="" /> 104712" title="" /> 105005" title="" /> 105112" title="" /> 105532" title="" /> 105705" title="" /> 105725" title="" /> 之后是毛主席用兵真如神的史料记载: 111354" title="" /> 111626" title="" /> 111735" title="" /> 111755" title="" /> 111929" title="" /> 111935" title="" /> 112353" title="" /> 112416" title="" /> 113122" title=

css中px、em和rem的区别

国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢?  PX特点 1. IE无法调整那些使用px作为单位的字体大小; 2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位; 3. Firefox能够调整px和em,rem,但是96%以上的中国网民使用IE浏览器(或内核)。  px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。(引自CSS2.0手册)em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(引自CSS2.0手册) 任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=