php笔记---图片处理

来源:互联网 发布:康熙王朝 陈道明 知乎 编辑:程序博客网 时间:2024/06/06 09:00
//<?php * *    一、创建图片资源 *          imagecreatetruecolor(width, height) *          gif jpg png * *      imagecreatefromgif(图片名称); *      imagecreatefrompng(图片名称); *      imagecreatefromjpeg(图片名称); * *         *        图出各种图形(圆形,矩形, 线段, 文字) * *        imagegif(,图片位置); *        imagepng(,); *        imagejpeg(,); * *        imagedestroy(图片资源)  * */    $img=imagecreatefromgif("./images/map.gif");    $red= imagecolorallocate($img, 255, 0, 0);        imageline($img, 0, 0, 100, 100, $red);        imageellipse($img, 200, 100, 100, 100, $red);    imagegif($img, "./images/map2.gif");    imagedestroy($img);___________________________________________________________________________________________________________________________二、获取图片的属性 * *        imagesx(res) *        imagesy(res) * *        getimagesize(图片名称);  //返回数组, 0==width 1==height 2==type *________________________________________________________________________________________//缩小图片$filename="./images/hee.jpg";    $per=0.3;        list($width, $height)=getimagesize($filename);    $n_w=$width*$per;    $n_h=$width*$per;    $new=imagecreatetruecolor($n_w, $n_h);    $img=imagecreatefromjpeg($filename);    imagecopyresized($new, $img,0, 0,0, 0,$n_w, $n_h, $width, $height);        imagejpeg($new, "./images/hee2.jpg");    imagedestroy($new);    imagedestroy($img);//更好的缩放图片,等比例缩放,并处理透明色function thumn($background, $width, $height, $newfile) {    list($s_w, $s_h)=getimagesize($background);    if ($width && ($s_w < $s_h)) {        $width = ($height / $s_h) * $s_w;    } else {        $height = ($width / $s_w) * $s_h;    }    $new=imagecreatetruecolor($width, $height);    $img=imagecreatefromgif($background);    $otsc=imagecolortransparent($img);    if($otsc >=0 && $otst < imagecolorstotal($img)){        $tran=imagecolorsforindex($img, $otsc);                $newt=imagecolorallocate($new, $tran["red"], $tran["green"], $tran["blue"]);        imagefill($new, 0, 0, $newt);        imagecolortransparent($new, $newt);    }        imagecopyresized($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);    imagegif($new, $newfile);    imagedestroy($new);    imagedestroy($img);}thumn("images/map.gif", 200, 200, "./images/map3.gif");——————————————————————————————————————————————————————————————————//图片的裁剪function cut($background, $cut_x, $cut_y, $cut_width, $cut_height, $location){    $back=imagecreatefromjpeg($background);    $new=imagecreatetruecolor($cut_width, $cut_height);    imagecopyresampled($new, $back, 0, 0, $cut_x, $cut_y, $cut_width, $cut_height,$cut_width,$cut_height);    imagejpeg($new, $location);    imagedestroy($new);    imagedestroy($back);}______________________________________________________________________________________________________________//加水印//文字水印function mark_text($background, $text, $x, $y){        $back=imagecreatefromjpeg($background);        $color=imagecolorallocate($back, 0, 255, 0);            imagettftext($back, 20, 0, $x, $y, $color, "simkai.ttf", $text);        imagejpeg($back, "./images/hee7.jpg");        imagedestroy($back);    }    mark_text("./images/hee.jpg", "细说PHP", 150, 250);//图片水印    function mark_pic($background, $waterpic, $x, $y){        $back=imagecreatefromjpeg($background);        $water=imagecreatefromgif($waterpic);                $w_w=imagesx($water);        $w_h=imagesy($water);        imagecopy($back, $water, $x, $y, 0, 0, $w_w, $w_h);        imagejpeg($back,"./images/hee8.jpg");        imagedestroy($back);        imagedestroy($water);    }    mark_pic("./images/hee.jpg", "./images/gaolf.gif", 50, 200);_________________________________________________________________________________________________________//图片的旋转    $back=imagecreatefromjpeg("./images/hee.jpg");    $new=imagerotate($back, 45, 0);    imagejpeg($new, "./images/hee9.jpg");//图片的翻转//沿着x轴翻转//沿着y轴旋转function turn_y($background, $newfile){        $back=imagecreatefromjpeg($background);        $width=imagesx($back);        $height=imagesy($back);        $new=imagecreatetruecolor($width, $height);        for($x=0; $x < $width; $x++){            imagecopy($new, $back, $width-$x-1, 0, $x, 0, 1, $height);        }        imagejpeg($new, $newfile);        imagedestroy($back);        imagedestroy($new);    }    function turn_x($background, $newfile){        $back=imagecreatefromjpeg($background);        $width=imagesx($back);        $height=imagesy($back);        $new=imagecreatetruecolor($width, $height);        for($y=0; $y < $height; $y++){            imagecopy($new, $back,0, $height-$y-1, 0, $y, $width, 1);        }        imagejpeg($new, $newfile);        imagedestroy($back);        imagedestroy($new);    }    turn_y("./images/hee.jpg", "./images/hee11.jpg");    turn_x("./images/hee.jpg", "./images/hee12.jpg");---------------------------------------------------------------------------------------------------//图片的锐化function sharp($background, $degree, $save){    $back=imagecreatefromjpeg($background);    $b_x=imagesx($back);    $b_y=imagesy($back);    $dst=imagecreatefromjpeg($background);    for($i=0; $i<$b_x; $i++){        for($j=0; $j<$b_y; $j++){            $b_clr1=imagecolorsforindex($back, imagecolorat($back, $i-1, $j-1));                $b_clr2=imagecolorsforindex($back, imagecolorat($back, $i, $j));            $r=intval($b_clr2["red"]+$degree*($b_clr2["red"]-$b_clr1["red"]));            $g=intval($b_clr2["green"]+$degree*($b_clr2["green"]-$b_clr1["green"]));            $b=intval($b_clr2["blue"]+$degree*($b_clr2["blue"]-$b_clr1["blue"]));            $r=min(255, max($r, 0));            $g=min(255, max($g, 0));            $b=min(255, max($b, 0));            if(($d_clr=imagecolorexact($dst, $r, $g, $b))==-1){                $d_clr=Imagecolorallocate($dst, $r, $g, $b);            }            imagesetpixel($dst, $i, $j, $d_clr);        }        }    imagejpeg($dst, $save);    imagedestroy($back);    imagedestroy($dst);}sharp("./images/hee.jpg", 20, "./images/hee13.jpg"); 

0 0
原创粉丝点击