PHP object-oriented and process-oriented two ways to add a text watermark to a picture _php instance

Source: Internet
Author: User

Most PHP programmers now use a process-oriented approach, because parsing a Web page itself is very "procedural" (from one label to another). Embedding process code in HTML is straightforward and natural, so PHP programmers often use this approach.

If you're just in touch with PHP, writing code in a process-oriented style is probably your only option. But if you regularly go to the PHP forums and newsgroups, you should see an article about "objects." You may also have seen a tutorial on how to write object-oriented PHP code. Or you may have downloaded some out-of-the-box libraries and tried to instantiate them and use class methods-although you may not really understand why these classes work, or why you need to use object-oriented methods to implement functionality.

Should the "object-oriented" style or "process oriented" style be used? Each side has its own supporters. Such arguments as "objects are inefficient" or "very good objects" are also heard. This article does not attempt to easily determine which of the two methods has an absolute advantage, but to find out the pros and cons of each method.

1: Object-oriented implementation using PHP to add a watermark method to the picture

Class Image_class {private $image;
  Private $info;
    /** * @param $src: Picture path * load picture into memory/function __construct ($src) {$info = getimagesize ($SRC);
    $type = Image_type_to_extension ($info [2],false);
    $this-> info = $info;
    $this->info[' type '] = $type;
    $fun = "Imagecreatefrom". $type;
  $this-> image = $fun ($SRC); /** * @param $fontsize: Font size * @param $x: The x position of the font in the picture * @param $y: The y position of the font in the picture * @param $color: The color of the font is a containing RG
    BA array * @param $text: What you want to add * manipulate the picture in memory, add a text watermark to the picture/Public function Fontmark ($fontsize, $x, $y, $color, $text) {
    $col = Imagecolorallocatealpha ($this->image, $color [0], $color [1], $color [2], $color [3]);
  Imagestring ($this->image, $fontsize, $x, $y, $text, $col);
    * * * Output picture to Browser/public function show () {header (' Content-type: ', $this-> info[' mime ')); $fun = ' image '.
    $this->info[' type '];
  $fun ($this->image); /** * Destroy Picture * * Function __destruct () {ImagedeStroy ($this->image);
The call to class $obj = new Image_class (' 001.png ');
$obj->fontmark (20,20,30,array (255,255,255,60), ' hello '); $obj->show ();

2: Process-oriented writing use PHP to add a watermark method to the picture:

Specifies the picture path
$src = ' 001.png ';
Get picture information
$info = getimagesize ($SRC);
Gets the picture extension
$type = image_type_to_extension ($info [2],false);
Dynamic image import into memory
$fun = "imagecreatefrom{$type}";
$image = $fun (' 001.png ');
Specifies the font color
$col = Imagecolorallocatealpha ($image, 255,255,255,50);
Specifies the font content
$content = ' HelloWorld ';
Add text to the picture
imagestring ($image, 5,20,30, $content, $col);
Specifies the input type
header (' Content-type: '. $info [' MIME ']);
Dynamic output picture to the browser
$func = "image{$type}";
$func ($image);
Destroy picture
Imagedestroy ($image);

The above code example is the introduction of PHP object-oriented and process-oriented two methods to add text watermark to the picture, I hope you like.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.