Heim > Artikel > Backend-Entwicklung > Kapselungsklasse für PHP-Bilddateioperationen
In diesem Artikel wird hauptsächlich die Kapselungsklasse für PHP-Bilddateien vorgestellt. Ich hoffe, dass sie für alle hilfreich ist.
PHP verwendet hauptsächlich die GD-Bibliothekserweiterung, um Bilddateien zu verwalten. Wenn wir häufig PHP zum Betreiben von Bildern verwenden, kapseln wir natürlich viele Funktionen, sonst schreiben wir zu viel sich wiederholenden Code. Wenn es viele bildbezogene Funktionen gibt, können wir darüber nachdenken, diese Funktionen zu organisieren, sodass wir die Idee haben, sie in Klassen zu kapseln.
Operationsbilder durchlaufen hauptsächlich vier Schritte1. Öffnen Sie das Bild
3. Geben Sie das Bild aus das Bild
Die Schritte 1, 3 und 4 müssen jedes Mal geschrieben werden und sind jedes Mal fast gleich. Das Einzige, was wirklich geändert werden muss, ist der Schritt der Bildbearbeitung. Die Bearbeitung von Bildern erfolgt häufig über eine oder mehrere GD-Hauptfunktionen. <?php
class Image
{
private $info;
private $image;
public $type;
public function __construct($src)
{
$this->info=getimagesize($src);
$this->type=image_type_to_extension($this->info['2'],false);
$fun="imagecreatefrom{$this->type}";
$this->image=$fun($src);
}
/**
* 文字水印
* @param [type] $font 字体
* @param [type] $content 内容
* @param [type] $size 文字大小
* @param [type] $col 文字颜色(四元数组)
* @param array $location 位置
* @param integer $angle 倾斜角度
* @return [type]
*/
public function fontMark($font,$content,$size,$col,$location,$angle=0){
$col=imagecolorallocatealpha($this->image, $col['0'], $col['1'], $col['2'],$col['3']);
imagettftext($this->image, $size, $angle, $location['0'], $location['1'], $col,$font,$content);
}
/**
* 图片水印
* @param [type] $imageMark 水印图片地址
* @param [type] $dst 水印图片在原图片中的位置
* @param [type] $pct 透明度
* @return [type]
*/
public function imageMark($imageMark,$dst,$pct){
$info2=getimagesize($imageMark);
$type=image_type_to_extension($info2['2'],false);
$func2="imagecreatefrom".$type;
$water=$func2($imageMark);
imagecopymerge($this->image, $water, $dst[0], $dst[1], 0, 0, $info2['0'], $info2['1'], $pct);
imagedestroy($water);
}
/**
* 压缩图片
* @param [type] $thumbSize 压缩图片大小
* @return [type] [description]
*/
public function thumb($thumbSize){
$imageThumb=imagecreatetruecolor($thumbSize[0], $thumbSize[1]);
imagecopyresampled($imageThumb, $this->image, 0, 0, 0, 0, $thumbSize[0], $thumbSize[1], $this->info['0'], $this->info['1']);
imagedestroy($this->image);
$this->image=$imageThumb;
}
/**
* 裁剪图片
* @param [type] $cutSize 裁剪大小
* @param [type] $location 裁剪位置
* @return [type] [description]
*/
public function cut($cutSize,$location){
$imageCut=imagecreatetruecolor($cutSize[0],$cutSize[1]);
imagecopyresampled($imageCut, $this->image, 0, 0, $location[0], $location[1],$cutSize[0],$cutSize[1],$cutSize[0],$cutSize[1]);
imagedestroy($this->image);
$this->image=$imageCut;
}
/**
* 展现图片
* @return [type] [description]
*/
public function show(){
header("content-type:".$this->info['mime']);
$funn="image".$this->type;
$funn($this->image);
}
/**
* 保存图片
* @param [type] $newname 新图片名
* @return [type] [description]
*/
public function save($newname){
header("content-type:".$this->info['mime']);
$funn="image".$this->type;
$funn($this->image,$newname.'.'.$this->type);
}
public function __destruct(){
imagedestroy($this->image);
}
}
?>
Zusammenfassung
Verwandte Empfehlungen:
php unterstützt chinesische Dateidownloads
Detaillierte Erläuterung der Mongodb-Verbindung zur Remote-Datenbank unten PHP und Fälle
Prinzip der PHP-Text-zu-Bild-Funktion
Das obige ist der detaillierte Inhalt vonKapselungsklasse für PHP-Bilddateioperationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!