Home Backend Development PHP Tutorial Php image processing code sharing_PHP tutorial

Php image processing code sharing_PHP tutorial

Jul 21, 2016 pm 03:21 PM
php code share Function add Image Processing picture exist Example accomplish watermark at present kind Zoom Crop pass

Currently, only three functions are implemented: 1: Image scaling, 2: Image cropping, 3: Adding image watermark
In the instantiation, different functions are implemented by passing different values ​​to the second parameter

Copy code The code is as follows:

include "image.class.php";
$image =new image("2.png", 1, "300", "500", "5.png"); //Use the image zoom function
$image=new image("2.png", 2, "0,0", "50,50", "5.png"); //Use the image cropping function
$image=new image("2.png", 3, "1.png", "0 ", "5.png"); //Use the image watermark function
$image->outimage();
?>

PHP code
Copy code The code is as follows:

/*Known issues: 1. In the image scaling function, use the imagecreatetruecolor function to create a canvas and use the transparency processing algorithm, but images in PNG format cannot be transparent.Creating a canvas with the imagecreate function can solve this problem, but the number of colors in the scaled image is too small
*
*
*type value:
* (1): represents the use of the image scaling function, this When, $value1 represents the width of the zoomed image, $value2 represents the height of the zoomed image
* (2): represents using the image cropping function, at this time, $value1 represents the coordinates of the cropping start point, for example: starting from the origin That is, "0,0" is preceded by the x-axis and followed by the y-axis, separated by, in the middle. $value2 represents the width and height of the crop. It is also in the form of "20,20".
* (3): represents the use Add image watermark function. At this time, $value1 represents the file name of the watermarked image, and $value2 represents the position of the watermark in the image. There are 10 values ​​to choose from, 1 represents upper left, 2 represents middle left, 3 represents left and right, and 4 represents middle. Left, 5 represents center, 6 represents center right, 7 represents bottom, 8 represents bottom center, 9 represents bottom right, 0 represents random position
*
*/
class image{
private $types; //Function numbers used, 1 is the image zoom function, 2 is the image cropping function, 3 is the image watermark function for the image
private $imgtype;//Format of the image
private $image; //Image Resource
private $width;//Picture width
private $height;//Picture height
private $value1;//Depending on the type value passed, $value1 represents different values
private $value2;//According to the different type values ​​passed, $value2 represents different values ​​respectively
private $endaddress;//The output address + file name
function __construct($imageaddress, $types, $ value1="", $value2="", $endaddress){
$this->types=$types;
$this->image=$this->imagesources($imageaddress);
$this->width=$this->imagesizex();
$this->height=$this->imagesizey();
$this->value1=$value1;
$this->value2=$value2;
$this->endaddress=$endaddress;
}
function outimage(){ //The output is different depending on the type value passed in Function
switch($this->types){
case 1:
$this->scaling();
break;
case 2:
$this- >clipping();
break;
case 3:
$this->imagewater();
break;
default:
return false;
}
}
private function imagewater(){ //Add image watermark function
//Use function to get the length and width of the watermark file
$imagearrs=$this->getimagearr($this-> value1);
//Call the function to calculate the position where the watermark is loaded
$positionarr=$this->position($this->value2, $imagearrs[0], $imagearrs[1]);
//Add watermark
imagecopy($this->image, $this->imagesources($this->value1), $positionarr[0], $positionarr[1], 0, 0, $ imagearrs[0], $imagearrs[1]);
//Call the output method to save
$this->output($this->image);
}
private function clipping( ){ //Image cropping function
//Assign the passed values ​​to variables
list($src_x, $src_y)=explode(",", $this->value1);
list($dst_w, $dst_h)=explode(",", $this->value2);
if($this->width < $src_x+$dst_w || $this->height < $src_y+$dst_h){ //This judgment is to limit the interception outside the picture
return false;
}
//Create a new canvas resource
$newimg=imagecreatetruecolor($dst_w, $ dst_h);
//Crop
imagecopyresampled($newimg, $this->image, 0, 0, $src_x, $src_y, $dst_w, $dst_h, $dst_w, $dst_h);
//Call the output method to save
$this->output($newimg);
}
private function scaling(){ //Picture scaling function
//Get the width of the proportional scaling and high
$this-> proimagesize();
//Scale according to the parameters, and call the output function to save the processed file
$this->output($this->imagescaling( ));
}
private function imagesources($imgad){ //Get the image type and open the image resource
$imagearray=$this->getimagearr($imgad);
switch($ imagearray[2]){
case 1://gif
$this->imgtype=1;
$img=imagecreatefromgif($imgad);
break;
case 2: //jpeg
$this->imgtype=2;
$img=imagecreatefromjpeg($imgad);
break;
case 3://png
$this->imgtype =3;
$img=imagecreatefrompng($imgad);
break;
default:
return false;
}
return $img;
}
private function imagesizex(){ //Get the image width
return imagesx($this->image);
}
private function imagesizey(){ //Get the image height
return imagesy($this ->image);
}
private function proimagesize(){ //Calculate the width and height of the proportionally scaled image
if($this->value1 && ($this->width < $this->height)) { //Equal scaling algorithm
$this->value1=round(($this->value2/ $this->height)*$this-> width);
}else{
$this->value2=round(($this->value1/ $this->width) * $this->height);
}
}
private function imagescaling(){//Image scaling function, returns the processed image resource
$newimg=imagecreatetruecolor($this->value1, $this->value2);
$tran= imagecolortransparent($this->image);//Handling transparency algorithm
if($tran >= 0 && $tran < imagecolorstotal($this->image)){
$tranarr=imagecolorsforindex( $this->image, $tran);
$newcolor=imagecolorallocate($newimg, $tranarr['red'], $tranarr['green'], $tranarr['blue']);
imagefill($newimg, 0, 0, $newcolor);
imagecolortransparent($newimg, $newcolor);
}
imagecopyresampled($newimg, $this->image, 0, 0, 0, 0, $this->value1, $this->value2, $this->width, $this->height);
return $newimg;
}
private function output($ image){//Output image
switch($this->imgtype){
case 1:
imagegif($image, $this->endaddress);
break;
case 2:
imagejpeg($image, $this->endaddress);
break;
case 3:
imagepng($image, $this->endaddress);
break ;
default:
return false;
}
}
private function getimagearr($imagesou){//Return image attribute array method
return getimagesize($imagesou);
}
private function position($num, $width, $height){//Return the coordinates of a position according to the passed in number, $width and $height respectively represent the width and height of the inserted image
switch( $num){
case 1:
$positionarr[0]=0;
$positionarr[1]=0;
break;
case 2:
$positionarr[0 ]=($this->width-$width)/2;
$positionarr[1]=0;
break;
case 3:
$positionarr[0]=$this- >width-$width;
$positionarr[1]=0;
break;
case 4:
$positionarr[0]=0;
$positionarr[1]=( $this->height-$height)/2;
break;
case 5:
$positionarr[0]=($this->width-$width)/2;
$positionarr[1]=($this->height-$height)/2;
break;
case 6:
$positionarr[0]=$this->width-$width;
$positionarr[1]=($this->height-$height)/2;
break;
case 7:
$positionarr[0]=0;
$positionarr [1]=$this->height-$height;
break;
case 8:
$positionarr[0]=($this->width-$width)/2;
$positionarr[1]=$this->height-$height;
break;
case 9:
$positionarr[0]=$this->width-$width;
$positionarr[1]=$this->height-$height;
break;
case 0:
$positionarr[0]=rand(0, $this->width-$width) ;
$positionarr[1]=rand(0, $this->height-$height);
break;
}
return $positionarr;
}
function __destruct (){
imagedestroy($this->image);
}
}
?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/324918.htmlTechArticleCurrently only three functions are implemented: 1: Image zoom, 2: Image cropping, 3: Add image watermark on During instantiation, different functions can be copied by passing different values ​​to the second parameter...
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

In this chapter, we are going to learn the following topics related to routing ?

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

See all articles