This article mainly describes how to implement the PHP code processing pictures, interested in the reference of friends, I hope to be helpful to everyone.
First, the image scaling code
Non-proportional picture scaling code
$fileNames = './images/hee.jpg '; list ($s _w, $s _h) =getimagesize ($fileNames); $per =0.3; $n _w= $s _w* $per; $n _h= $s _h* $per; $s _img=imagecreatefromjpeg ($fileNames); $n _img=imagecreatetruecolor ($n _w, $n _h); imagecopyresized ($n _img, $s _img, 0,0,0,0, $n _w, $n _h, $s _w, $s _h); Header ("Content-type:image/jpeg"); imagejpeg ($n _img, './images/hee2.jpg '); Imagedestroy ($n _img), Imagedestroy ($s _img), function sf ($backgroung, $BL, $location) {list ($width, $height) = GetImageSize ($backgroung); $n _w= $width * $bl, $n _h= $height * $BL; $s _img=imagecreatefromjpeg ($backgroung); $n _img= Imagecreatetruecolor ($n _w, $n _h) imagecopyresized ($n _img, $s _img,0,0,0,0, $n _w, $n _h, $width, $height); Header (" Content-type:image/jpeg ") imagejpeg ($n _img, $location) Imagedestroy ($s _img); Imagedestroy ($n _img);} SF ('./images/hee.jpg ', 0.3, './images/hee9.jpg ');
Equal scale picture scaling (and transparent color processing)
function Imagesf ($backgroung, $n _w, $n _h, $newFiles) {list ($s _w, $s _h, $imagetype) =getimagesize ($backgroung);// Equal scale fixed algorithm if ($n _w && ($s _w < $s _h)) {$n _w = ($n _h/$s _h) * $s _w;} else {$n _h = ($n _w/$s _w) * $s _h;} if ($imagetype ==2) {$s _img=imagecreatefromjpeg ($backgroung);} ElseIf ($imagetype ==3) {$s _img=imagecreatefrompng ($backgroung);} ElseIf ($imagetype ==1) {$s _img=imagecreatefromgif ($backgroung);} Else{echo "PHP does not support this type of image!! ";} $n _img=imagecreatetruecolor ($n _w, $n _h);//Obtain an index of the original graph $img_index=imagecolortransparent ($s _img);// Determines whether the original graphic index is within the number of graphic palettes (palette number 0~255); if ($img _index>=0 && $img _index<imagecolorstotal ($s _img)) {// Returns an associative array of key names with Red,green,blue and alpha, containing the corresponding values for the specified color index $trans=imagecolorsforindex ($s _img, $img _index);//print_r ($ Trans); Array ([red] = 255 [Green] = 255 [Blue] + 255 [Alpha] + 127)//Take the original color, assign a color to the new diagram $n_color=imagecolorallocate ( $n _img, $trans [' Red '], $trans [' Green '], $trans [' Blue ']; Imagefill ($n _img,0,0, $n _color);//the Acquired color, Sets the transparent color imagecolortransparent for the new diagram ($n _imG, $n _color);} Imagecopyresampled ($n _img, $s _img,0,0,0,0, $n _w, $n _h, $s _w, $s _h), if (Imagetypes () & img_jpg) {Header (" Content-type:image/jpeg "); imagejpeg ($n _img, $newFiles);} ElseIf (Imagetypes () & Img_png) {header ("content-type:image/png"); Imagepng ($n _img, $newFiles);} ElseIf (Imagetypes () & Img_gif) {header ("content-type:image/gif"); Imagegif ($n _img, $newFiles);} Else{echo "PHP does not support this type of image!! ";} Imagedestroy ($s _img); Imagedestroy ($n _img);} IMAGESF ('./images/map.gif ', 200,200, './images/map2.gif ');
Second, the picture clipping code
Picture clipping
function Imagecut ($backgroung, $cut _x, $cut _y, $cut _width, $cut _hight, $fileNames) {list (,, $imagetype) =getimagesize ($ Backgroung), if ($imagetype ==1) {$s _img=imagecreatefromgif ($backgroung);} ElseIf ($imagetype ==2) {$s _img=imagecreatefromjpeg ($backgroung);} ElseIf ($imagetype ==2) {$s _img=imagecreatefrompng ($backgroung);} Else{echo "PHP does not support this type of image!! ";} $n _img=imagecreatetruecolor ($cut _width, $cut _hight) imagecopyresized ($n _img, $s _img,0,0, $cut _x, $cut _y, $cut _width , $cut _hight, $cut _width, $cut _hight), if (Imagetypes () & Img_gif) {header ("content-type:image/gif"); Imagegif ($n _ IMG, $fileNames);} ElseIf (Imagetypes () & img_jpg) {header ("content-type:image/jpeg"); imagejpeg ($n _img, $fileNames);} ElseIf (Imagetypes () & Img_png) {header ("content-type:image/png"); Imagepng ($n _img, $fileNames);} Else{echo "PHP does not support this type of image!! ";}} Imagecut ('./images/hee.jpg ', ' n ', ' 345 ', '/images/hee4.jpg '); function cut ($backgroung, $x, $y, $cut _width, $cut _hight, $location) {$s _img=imagecreatefromjpeg ($backgroung); $n _img=imagecreatetruecolor ($Cut_width, $cut _hight); Imagecopy ($n _img, $s _img,0,0, $x, $y, $cut _width, $cut _hight); Header ("Content-type:image/jpeg Imagejpeg ($n _img, $location); Imagedestroy ($s _img); Imagedestroy ($n _img);} Cut ('./images/hee.jpg ', 345, './images/hee8.jpg ');
The picture is cropped and scaled to the cropped image, not scaled (that is, copying part of the image and resizing) imagecopyresized ()-Copy part of the image and resize it
Imagecopyresampled ()-resample copy part of image and resize
function CUTSF ($backgroung, $x, $y, $cut _width, $cut _hight, $n _w, $n _h, $location) {$s _img=imagecreatefromjpeg ($ Backgroung); $n _img=imagecreatetruecolor ($n _w, $n _h); imagecopyresized ($n _img, $s _img,0,0, $x, $y, $n _w, $n _h, $cut _ width, $cut _hight), header ("Content-type:image/jpeg"), imagejpeg ($n _img, $location); Imagedestroy ($s _img); Imagedestroy ($n _img);} CUTSF ('./images/hee.jpg ', 345, 330,200,200, './images/hee10.jpg ');
Three, picture and watermark: text watermark and image watermark code
picture Plus text watermark
function Mark_text ($backgroung, $x, $y, $text, $fileNames) {list (,, $imagetype) =getimagesize ($backgroung); ImageType = = 1) {$s _img=imagecreatefromgif ($backgroung);} ElseIf ($imagetype = = 2) {$s _img=imagecreatefromjpeg ($backgroung);} ElseIf ($imagetype = = 3) {$s _img=imagecreatefrompng ($backgroung);} $green =imagecolorallocate ($s _img,0,255,0) imagettftext ($s _img,20,0, $x, $y, $green, './font/msyh.ttf ', $text); Imagetypes () & Img_gif) {header ("content-type:image/gif"); Imagegif ($s _img, $fileNames);} ElseIf (Imagetypes () & img_jpg) {header ("content-type:image/jpeg"); Imagejpeg ($s _img, $fileNames);} ElseIf (Imagetypes () & Img_png) {header ("content-type:image/png"); Imagepng ($s _img, $fileNames);} Imagedestroy ($s _img);} $text =iconv (' gb2312 ', ' utf-8 ', ' elaborating php '),//mark_text ('./images/hee.jpg ', 150,250, $text, './images/hee5.jpg ');
picture plus image Watermark
function Mark_pic ($backgroung, $x, $y, $waterpic, $fileNames) {$s _img=imagecreatefromjpeg ($backgroung); $waterpic _img =imagecreatefromgif ($waterpic); $waterpic _w=imagesx ($waterpic _img); $waterpic _h=imagesy ($waterpic _img); imagecopy ($s _img, $waterpic _img, $x, $y, 0,0, $waterpic _w, $waterpic _h); Header ("Content-type:image/jpeg"); Imagejpeg ($s _ IMG, $fileNames); Imagedestroy ($s _img); Imagedestroy ($waterpic _img);} Mark_pic ('./images/hee.jpg ', 50,200, './images/gaolf.gif ', './images/hee6.jpg ');
Four, the picture rotation code
Picture Rotation Resource imagerotate ()-Rotate the image at a given angle to return to the new resource
function Imagexz ($backgroung, $angle, $location) {$s _img=imagecreatefromjpeg ($backgroung); $n _img=imagerotate ($s _ IMG, $angle, 0), header ("Content-type:image/jpeg"), imagejpeg ($n _img, $location); Imagedestroy ($s _img); Imagedestroy ( $n _img);} Imagexz ('./images/hee.jpg ', ' images/hee10.jpg '); 90 180 270 360
Five, picture flip
The
picture is flipped along the y-axis
, right and left.
function turn_y ($backgroung, $newFiles) {$s _img=imagecreatefromjpeg ($backgroung); $width =imagesx ($s _img); $height Imagesy ($s _img), $n _img=imagecreatetruecolor ($width, $height); for ($x =0; $x < $width; $x + +) {imagecopy ($n _img, $s _ IMG, $width-$x -1,0, $x, 0, 1, $height);} Header ("Content-type:image/jpeg"), imagejpeg ($n _img, $newFiles), Imagedestroy ($s _img); Imagedestroy ($n _img);} Turn_y ('./images/hee.jpg ', './images/hee11.jpg ');
The
image is flipped along the x-axis
.
function Turn_x ($backgroung, $newFiles) {$s _img=imagecreatefromjpeg ($backgroung); $width =imagesx ($s _img); $height =imagesy ($ S_IMG), $n _img=imagecreatetruecolor ($width, $height); for ($y =0; $y < $height; $y + +) {imagecopy ($n _img, $s _img, 0,$ height-$y-1, 0, $y, $width, 1);} Header ("Content-type:image/jpeg"), imagejpeg ($n _img, $newFiles), Imagedestroy ($s _img); Imagedestroy ($n _img);}
Turn_x ('./images/hee.jpg ', './images/hee12.jpg ');
vi. picture sharpening
Function Sharp ($background, $degree, $save) {$back =imagecreatefromjpeg ($background); $b _x=imagesx ($back); $b _y= Imagesy ($back); $dst =imagecreatefromjpeg ($background); for ($i = $b _x-1; $i >0; $i-) {for ($j = $b _y-1; $j >0; $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", "./images/hee15.jpg");
Image sharpening (Analytic principle) (first get the original color, and then sharpen the original color, and finally in the sharpening color to the original)
#解析开始:
#1 Create a picture resource to sharpen
#eg: $s _img=imagecreatefromjpeg ('./images/hee.jpg ');
#2 get the width and height of the image resource, create a two-layer loop (the outer control-wide inner control is high) to sharpen each pixel
#eg: $width =imagesx ($s _img);
# $height =imagesy ($s _img);
# for ($i = $width-1; $i >0; $i-) {
# for ($j = $height-1; $j >0; $j-) {
#
# }
# }
#3 sharpen each pixel color in the inner loop (write in the inner loop):
#3.1 Use function $color=imagecolorsforindex () to get the color of the image index, that is, get the current color and get the previous color
#eg: $s _img_color1=imagecolorsforindex ($s _img, imagecolorat ($s _img, $i-1, $j-1));//Previous Color
# $s _img_color2=imagecolorsforindex ($s _img, imagecolorat ($s _img, $i, $j));//Current color
#3.2 fixed algorithm sharpening of acquired colors such as sharpening: $degree =20
#eg: $r =intval ($color ["Red"]+ $degree * ($color ["Red"]-$color ["Red"]);
# $g =intval ($s _img_color2["green"]+ $degree * ($s _img_color2["green"]-$s _img_color1["green"));
# $b =intval ($s _img_color2["blue"]+ $degree * ($s _img_color2["blue"]-$s _img_color1["blue"));
#3.3 to control the obtained RGB color within the 0~255 normal range
# $r =min (255, Max ($r, 0));
# $g =min (255, Max ($g, 0));
# $b =min (255, Max ($b, 0));
#4 re-assigns each pixel color of the sharpening to each pixel color of the original (written in the inner loop)
#4.1 index of color after sharpening: $rh _color
#eg: if (($rh _color=imagecolorexact ($s _img, $r, $g, $b)) ==-1) {
# $rh _color=imagecolorallocate ($s _img, $r, $g, $b);
# }
#4.2 re-assigns each pixel color of the sharpening to each pixel color of the original image
Eg:imagesetpixel ($s _img, $i, $j, $rh _color);
#5 Save Picture Resources (write outside the loop)
#eg: imagejpeg ($s _img './images/hee16.jpg ');
#6 Close the picture resource (write outside the loop)
#eg: Imagedestroy ($s _img);
#解析结束
Follow the resolution in the write once picture sharpening code
Function Sharp ($background, $degree, $location) {#step 1 Create a picture resource $s_img=imagecreatefromjpeg ($background); #step 2 Get the picture resource's wide height $b_x=imagesx ($s _img), $b _y=imagesy ($s _img), #step 32-layer loop to control the wide inner layer control of the high for ($i = $b _x-1, $i >0; $i--) {for ($j = $b _y-1; $j >0; $j--) {#step 4 Gets the color of the image index: the current color and the previous color $s_img_color1=imagecolorsforindex ($s _img, imagecolorat ($s _img, $i-1, $j-1)); $s _ Img_color2=imagecolorsforindex ($s _img, imagecolorat ($s _img, $i, $j)); #step 5 fixed algorithm sharpening the obtained color $r=intval ($s _img_color2[ "Red"]+ $degree * ($s _img_color2["red"-$s _img_color1["red")) $g =intval ($s _img_color2["green"]+ $degree * ($s _img_ Color2["Green" – $s _img_color1["green")), $b =intval ($s _img_color2["blue"]+ $degree * ($s _img_color2["blue"-$s _img _color1["Blue"]); #step 6 The obtained RGB color control within the normal range of 0~255 $r=min (255, Max ($r, 0)); $g =min (255, Max ($g, 0)); $b =min (255, Max ($b, 0) ); #step 7 Gets the index of the sharpened color if (($d _clr=imagecolorexact ($s _img, $r, $g, $b)) ==-1) {$d _clr=imagecolorallocate ($s _img, $r, $g, $b) ;} #step 8 Re-assign the sharpened color to each pixel of the picture resource imagesetpixel ($s _img, $i, $j, $d _clr);}} ImAgejpeg ($s _img, $location); Imagedestroy ($s _img);} Sharp ('./images/hee.jpg ', './images/hee16.jpg ');