Heim >Backend-Entwicklung >PHP-Tutorial >PHP implementiert Bildverarbeitungstools, die Wasserzeichen hinzufügen und thumbnails_php-Fähigkeiten generieren können
In diesem Artikel wird hauptsächlich PHP für die Implementierung von Bildverarbeitungstools vorgestellt, die Wasserzeichen hinzufügen und Miniaturansichten generieren können. Dabei geht es um die mit PHP verbundenen Betriebsfähigkeiten für Bildanzeige, Speicherung, Komprimierung, Wasserzeichen usw. Freunde, die es benötigen, können darauf verweisen
Das Beispiel in diesem Artikel beschreibt die PHP-Implementierung einer Bildverarbeitungstoolklasse, die Wasserzeichen hinzufügen und Miniaturansichten generieren kann. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
ImageTool.class.php
<?php class ImageTool { private $imagePath;//图片路径 private $outputDir;//输出文件夹 private $memoryImg;//内存图像 public function __construct($imagePath, $outputDir = null) { $this->imagePath = $imagePath; $this->outputDir = $outputDir; $this->memoryImg = null; } /** * 显示内存中的图片 * @param $image */ public function showImage() { if ($this->memoryImg != null) { $info = getimagesize($this->imagePath); $type = image_type_to_extension($info[2], false); header('Content-type:' . $info['mime']); $funs = "image{$type}"; $funs($this->memoryImg); imagedestroy($this->memoryImg); $this->memoryImg = null; } } /**将图片以文件形式保存 * @param $image */ private function saveImage($image) { $info = getimagesize($this->imagePath); $type = image_type_to_extension($info[2], false); $funs = "image{$type}"; if (empty($this->outputDir)) { $funs($image, md5($this->imagePath) . '.' . $type); } else { $funs($image, $this->outputDir . md5($this->imagePath) . '.' . $type); } } /** * 压缩图片 * @param $width 压缩后宽度 * @param $height 压缩后高度 * @param bool $output 是否输出文件 * @return resource */ public function compressImage($width, $height, $output = false) { $image = null; $info = getimagesize($this->imagePath); $type = image_type_to_extension($info[2], false); $fun = "imagecreatefrom{$type}"; $image = $fun($this->imagePath); $thumbnail = imagecreatetruecolor($width, $height); imagecopyresampled($thumbnail, $image, 0, 0, 0, 0, $width, $height, $info[0], $info[1]); imagedestroy($image); if ($output) { $this->saveImage($thumbnail); } $this->memoryImg = $thumbnail; return $this; } /** * 为图像添加文字标记 * * @param $content 文本内容 * @param $size 字体大小 * @param $font 字体样式 * @param bool $output 是否输出文件 * @return $this */ public function addTextmark($content, $size, $font, $output = false) { $info = getimagesize($this->imagePath); $type = image_type_to_extension($info[2], false); $fun = "imagecreatefrom{$type}"; $image = $fun($this->imagePath); $color = imagecolorallocatealpha($image, 0, 0, 0, 80); $posX = imagesx($image) - strlen($content) * $size / 2; $posY = imagesy($image) - $size / 1.5; imagettftext($image, $size, 0, $posX, $posY, $color, $font, $content); if ($output) { $this->saveImage($image); } $this->memoryImg = $image; return $this; } /** * 为图片添加水印 * * @param $watermark 水印图片路径 * @param $alpha 水印透明度(0-100) * @param bool $output 是否输出文件 * @return $this */ public function addWatermark($watermark, $alpha, $output = false) { $image_info = getimagesize($this->imagePath); $image_type = image_type_to_extension($image_info[2], false); $image_fun = "imagecreatefrom{$image_type}"; $image = $image_fun($this->imagePath); $mark_info = getimagesize($watermark); $mark_type = image_type_to_extension($mark_info[2], false); $mark_fun = "imagecreatefrom{$mark_type}"; $mark = $mark_fun($watermark); $posX = imagesx($image) - imagesx($mark); $posY = imagesy($image) - imagesy($mark); imagecopymerge($image, $mark, $posX, $posY, 0, 0, $mark_info[0], $mark_info[1], $alpha); if ($output) { $this->saveImage($image); } $this->memoryImg = $image; return $this; } }
ImageTool verwendet
importiert zuerst das ImageTool-Tool:
require_once 'ImageTool.class.php';
und dann das ImageTool-Objekt instanziieren:
$imageTool = new ImageTool('img/oppman.jpeg', 'out/');//图片路径、输出文件夹
1. Komprimierte Bilder generieren
$imageTool->compressImage(350, 250, true);//压缩宽度、压缩高度、是否保存 $imageTool->showImage();
2. Textwasserzeichen hinzufügen
$imageTool->addTextmark('一拳超人', 50, 'res/micro.ttf', true);//内容、尺寸、字体、是否保存 $imageTool->showImage();
3. Bildwasserzeichen hinzufügen
$imageTool->addWatermark('res/logo.jpeg', 100, true);//水印路径、透明度、是否保存 $imageTool->showImage();
Nur als temporäre Bildausgabe:
$imageTool->addTextmark('快捷输出', 50, 'res/micro.ttf')->showImage();
PS: Hier sind einige weitere praktische Bildverarbeitungstools, die Ihnen als Referenz empfohlen werden:
Online-Tool zum Zuschneiden/Generieren von Bildern:
http://tools.jb51.net/aideddesign/imgcut
Online BASE64-Tool zur Bildkonvertierung:
http://tools.jb51.net/transcoding/img2base64
Online-Generierungstool für ICO-Symbole:
http://tools.jb51.net/aideddesign/ico_img
Online-Tool zur Erstellung von E-Mail-Symbolen:
http://tools. jb51.net/email/mailillogo
Tool zur Online-Bildformatkonvertierung (jpg/bmp/gif/png):
http://tools.jb51 .net/aideddesign/picext
Erklärung zum Drucken von Binärbäumen in Zick-Zack-Reihenfolge mit PHP
Erklärung der Methode zum Erhalten des Binärbaumbilds mit PHP
Erklärung der Methode zum Erhalten des K-ten Knotens vom letzten in der verknüpften Liste mit PHP
Das obige ist der detaillierte Inhalt vonPHP implementiert Bildverarbeitungstools, die Wasserzeichen hinzufügen und thumbnails_php-Fähigkeiten generieren können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!