Home > Backend Development > PHP Tutorial > Summary of PHP's various image processing function codes_PHP tutorial

Summary of PHP's various image processing function codes_PHP tutorial

WBOY
Release: 2016-07-21 15:00:38
Original
883 people have browsed it

1. Create image resources

imagecreatetruecolor(width,height);
imagecreatefromgif(picture name);
imagecreatefrompng(picture name);
imagecreatefromjpeg(picture name); draw various images imagegif (picture resource, save path) ;
imagepng()
imagejpeg();

2. Get image attributes

imagesx(res//width
imagesy(res//height
getimagesize(file path)
Returns an array with four cells. Index 0 contains the pixel value of the image width, index 1 contains The pixel value of the image height. Index 2 is a tag for the image type: 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF (intel byte order), 8 = TIFF (motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. These tags are the same as the new IMAGETYPE constant added in PHP 4.3.0. Corresponding. Index 3 is a text string with the content "height="yyy" width="xxx"", which can be used directly for IMG tags
imagedestroy(picture resource);

3. Transparent processing

The transparent colors of PNG and jpeg are normal, only gif is abnormal

imagecolortransparent(resource image [,int color])//Set a color to be transparent

imagecolorstotal()
imagecolorforindex();

4. Cropping of pictures

imagecopyresized()

imagecopyresampled();

5. Add watermark (text, picture)

String encoding conversion string iconv ( string $in_charset , string $out_charset , string $str )

6. Image rotation

imagerotate(); // Image flip at specified angle

7. Flip of pictures

Flip along the X-axis along the Y-axis

8. Sharpening

imagecolorsforindex()

imagecolorat()

Draw graphics on pictures $img=imagecreatefromgif("./images/map.gif");


Copy code The code is as follows:
$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);

Normal scaling of images


Copy code The code is as follows:
$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);

//Copy part of the image and adjust it

imagecopyresized($new, $img,0, 0,0, 0,$n_w, $n_h, $width, $height);

//Image output new image, save as

imagejpeg($new, "./images/hee2.jpg");

imagedestroy($new);

imagedestroy($img);

Image scaling, no transparent color processing

Copy code The code is as follows:
function thumn($background, $width, $height, $newfile) {
list($s_w, $s_h)=getimagesize($background );//Get the original image height and width
if ($width && ($s_w < $s_h)) {

$width = ($height / $s_h) * $s_w;
} else {
$height = ($width / $s_w) * $s_h;
}

$new=imagecreatetruecolor($width, $height);

$img=imagecreatefromjpeg($background);

imagecopyresampled($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);

imagejpeg($new, $newfile);

imagedestroy($new);

imagedestroy($img);
}

thumn("images/hee.jpg", 200, 200, "./images/hee3.jpg");


gif transparent color processing

Copy code The code is as follows:

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);
}

cut("./images/hee.jpg", 440, 140, 117, 112, "./images/hee5.jpg");


图片加水印

文字水印

复制代码 代码如下:

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");

图片水平翻转垂直翻转
复制代码 代码如下:

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));\Previous pixel color array
$b_clr2=imagecolorsforindex($back, imagecolorat($ back, $i, $j));\Get the current color array

$r=intval($b_clr2["red"]+$degree*($b_clr2["red"]-$b_clr1["red"]));\deepen
$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));//Limit the range of r to 0-255
$g=min(255, max($g, 0));
$b=min(255, max($b, 0));

if(($d_clr=imagecolorexact($dst, $r, $g, $b))==-1){//Equal to 1 and not within the color range
$d_clr=Imagecolorallocate($dst, $ r, $g, $b);//Create a color
}

imagesetpixel($dst, $i, $j, $d_clr);
}

}
imagejpeg($dst, $save);
imagedestroy($back);
imagedestroy($dst);
}

sharp("./images/hee.jpg", 20, "./images/hee13.jpg");

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/328053.htmlTechArticle1. Create image resources imagecreatetruecolor(width,height); imagecreatefromgif(image name); imagecreatefrompng(image name); imagecreatefromjpeg(picture name); draw various images...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template