zoukankan      html  css  js  c++  java
  • 图像处理_等比例居中裁剪图片_可添加水印

     1 //参数:图片路径,生成的宽度,生成的高度
     2 //功能:切片图片不影响比例居中切片支持jpg,jpeg,png,gif,wbmp格式图片
     3 function imgthumb($url,$w,$h,$str="",$print){
     4     try{
     5         // if(!file_exists($url))
     6         // {
     7         //     throw new Exception('文件不存在!');
     8         // }
     9         $ext=pathinfo($url,PATHINFO_EXTENSION);
    10         switch($ext){
    11             case 'jpg':
    12             case 'jpeg':
    13                 $im=imagecreatefromjpeg($url);
    14             break;
    15             case 'png':
    16                 $im=imagecreatefrompng($url);
    17             break;
    18             case 'gif':
    19                 $im=imagecreatefromgif($url);
    20             break;
    21             case 'wbmp':
    22                 $im=imagecreatefromwbmp($url);
    23             break;
    24             default:
    25                 die('文件格式不支持');
    26         }
    27         
    28         $imarr=getimagesize($url);
    29         $height=$imarr[1];
    30         $width=$imarr[0];
    31         $pro=$height / $width;
    32         $targetpro=$h / $w;
    33         $trueimg=imagecreatetruecolor($w,$h);
    34         if($targetpro>$pro)
    35         {
    36         $ws=$h/$pro;
    37         $x=($ws-$w)/2;
    38         imagecopyresampled($trueimg,$im,0,0,$x,0,$ws,$h,$width,$height);
    39         }
    40         else{
    41             $hs=$w*$pro;
    42             $y=-($h-$hs)/2;
    43             imagecopyresampled($trueimg,$im,0,0,0,$y,$w,$hs,$width,$height);
    44         }
    45         if($print)
    46         {
    47         $trueimg=imgprint($trueimg,$str);
    48         }
    49         header('content-type:'.$imarr['mime']);
    50         switch($ext){
    51             case 'jpg':
    52             case 'jpeg':
    53             case 'png':
    54                 imagejpeg($trueimg,null,100);
    55             break;
    56    
    57                 imagepng($trueimg);
    58             break;
    59             case 'gif':
    60                 imagegif($trueimg);
    61             break;
    62             case 'wbmp':
    63                 image2wbmp($trueimg);
    64             break;
    65             default:
    66                 return false;
    67         }
    68         imagedestroy($trueimg);
    69     }catch(Exception $e){
    70         echo $e->getMessage();
    71     }
    72 }
    73 function imgprint($to,$str)
    74 {
    75     try{
    76        
    77         // 建立一幅的图像
    78         $im = imagecreate(200,40);
    79         // 白色背景和蓝色文本
    80         $bg = imagecolorallocate($im, 255, 255, 255);
    81         $textcolor = imagecolorallocate($im, 255, 0, 0);
    82         // 把字符串写在图像左上角
    83         imagestring($im,5, 30, 10, $str, $textcolor);
    84         #$toimg=imagecreatefromjpeg($to);
    85         $toimg=$to;
    86         imagecopymerge($toimg,$im,imagesx($toimg)-imagesx($im),imagesy($toimg)-imagesy($im),0,0,200,40,50);//修改位置
    87         return $toimg;
    88         #header('content-type:'.getimagesize($to)['mime']);
    89         #imagejpeg($toimg,null,100);
    90     }catch(Exception $e){
    91         echo $e->getMessage();
    92     }
    93 }
    94 $img=$_REQUEST['imgpath'];
    95 $x=isset($_REQUEST['x'])?$_REQUEST['x']:300;
    96 $y=isset($_REQUEST['y'])?$_REQUEST['y']:300;
    97 $print=isset($_REQUEST['print'])?$_REQUEST['print']:false;
    98 $str='xxxx';
    99 imgthumb($img,$x,$y,$str,$print);
     
  • 相关阅读:
    css(完)
    HTML学习(完)
    leetcode学习03
    多线程详解2(完)
    windows7 64位下安装apache和php
    一个js,记录方便查询。
    用了锚的时候,有的层被覆盖了。
    日,在ie10下面hover里不能控制table
    在实现tab的时候,margin-bottom:-1px无效的问题
    javascript中,在一个类里attache的event事件中,如果调用类的成员变量和方法
  • 原文地址:https://www.cnblogs.com/huangcaijin/p/13064502.html
Copyright © 2011-2022 走看看