Heim Backend-Entwicklung PHP-Tutorial php图片水印添加,压缩,剪切的封装类

php图片水印添加,压缩,剪切的封装类

Jun 23, 2016 pm 01:28 PM

  php对图片文件的操作主要是利用GD库扩展。当我们频繁利用php对图片进行操作时,会自然封装很多函数,否则会写太多重复的代码。当有很多对图片的相关函数的时候,我们可以考虑将这些函数也整理一下,因而就有了封装成类的想法。

  操作图片主要历经四个步骤:

  1. 打开图片
  2. 操作图片
  3. 输出图片
  4. 销毁图片

  1,3,4三个步骤每次都要写,每次又都差不多。真正需要变通的只有操作图片的这一步骤了。操作图片又往往通过1或多个主要的GD函数来完成。

  本文封装类里面的四种方法,文字水印(imagettftext()),图片水印(imagecopymerge()),图片压缩,图片剪切(imagecopyresampled()),其余的常用GD函数便不赘述。直接上代码:

<?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);     } } ?>
Nach dem Login kopieren

  如果还需要其他操作,只需要再往这个类里面添加就好啦~~

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So aktivieren oder deaktivieren Sie die Speicherkomprimierung unter Windows 11 So aktivieren oder deaktivieren Sie die Speicherkomprimierung unter Windows 11 Sep 19, 2023 pm 11:33 PM

Durch die Speicherkomprimierung unter Windows 11 verschluckt sich Ihr Gerät selbst bei begrenzter RAM-Menge. In diesem Artikel zeigen wir Ihnen, wie Sie die Speicherkomprimierung unter Windows 11 aktivieren oder deaktivieren. Was ist Speicherkomprimierung? Bei der Speicherkomprimierung handelt es sich um eine Funktion, die Daten vor dem Schreiben in den RAM komprimiert und so mehr Speicherplatz darauf bereitstellt. Natürlich führen mehr im physischen Speicher gespeicherte Daten zu einem schnelleren Systembetrieb und einer besseren Gesamtleistung. Diese Funktion ist in Windows 11 standardmäßig aktiviert. Wenn sie jedoch aus irgendeinem Grund nicht aktiv ist, können Sie sie deaktivieren oder erneut aktivieren. Wie aktiviere ich die Speicherkomprimierung in Windows 11? Klicken Sie auf die Suchleiste, geben Sie PowerShell ein und klicken Sie

Einstellung der maximalen Komprimierungsrate von 7-zip, wie man 7zip auf das Minimum komprimiert Einstellung der maximalen Komprimierungsrate von 7-zip, wie man 7zip auf das Minimum komprimiert Jun 18, 2024 pm 06:12 PM

Ich habe festgestellt, dass das von einer bestimmten Download-Website heruntergeladene komprimierte Paket nach der Dekomprimierung größer ist als das ursprüngliche komprimierte Paket. Der Unterschied beträgt mehrere zehn KB und mehrere zehn MB. Wenn es auf eine Cloud-Festplatte oder einen kostenpflichtigen Speicherplatz hochgeladen wird, spielt es keine Rolle Wenn die Datei klein ist und viele Dateien vorhanden sind, erhöhen sich die Speicherkosten erheblich. Ich habe einige Recherchen dazu durchgeführt und kann bei Bedarf daraus lernen. Komprimierungsstufe: 9-extreme Komprimierung. Wörterbuchgröße: 256 oder 384. Je stärker das Wörterbuch komprimiert ist, desto langsamer ist der Unterschied in der Komprimierungsrate vor 256 MB. Nach 384 MB gibt es keinen Unterschied in der Komprimierungsrate Parameter: f=BCJ2, die Komprimierungsrate für Test- und Add-Parameter ist höher

Was soll ich tun, wenn der Komprimierungstyp der PR-Datei nicht unterstützt wird? Was soll ich tun, wenn der Komprimierungstyp der PR-Datei nicht unterstützt wird? Mar 23, 2023 pm 03:12 PM

Gründe und Lösungen für den nicht unterstützten Komprimierungstyp von PR-Dateien: 1. Die optimierte Version von PR hat viele Video-Encoder optimiert. Installieren Sie die Vollversion von Premiere neu und verwenden Sie sie. Aufgrund unregelmäßiger Videocodierung können Sie die Formatfabrik zum Konvertieren verwenden das Video in das WMV-Format umwandeln.

So verwenden Sie Nginx zur Komprimierung und Dekomprimierung von HTTP-Anfragen So verwenden Sie Nginx zur Komprimierung und Dekomprimierung von HTTP-Anfragen Aug 02, 2023 am 10:09 AM

So verwenden Sie Nginx zum Komprimieren und Dekomprimieren von HTTP-Anfragen. Nginx ist ein leistungsstarker Webserver und Reverse-Proxy-Server, der leistungsstark und flexibel ist. Bei der Verarbeitung von HTTP-Anfragen können Sie die von Nginx bereitgestellten Module gzip und gunzip verwenden, um die Anfragen zu komprimieren und zu dekomprimieren, um die Menge der Datenübertragung zu reduzieren und die Antwortgeschwindigkeit der Anfrage zu verbessern. In diesem Artikel werden die spezifischen Schritte zur Verwendung von Nginx zum Komprimieren und Dekomprimieren von HTTP-Anforderungen vorgestellt und entsprechende Codebeispiele bereitgestellt. Gzip-Modul konfigurieren

So zeigen Sie komprimierte Dateiinformationen unter Linux an So zeigen Sie komprimierte Dateiinformationen unter Linux an Feb 13, 2023 am 10:20 AM

Anzeigemethode: 1. Verwenden Sie den Vim-Editor, Syntax „vim compress file“; 2. Verwenden Sie den Befehl „tar -tf compress file“. 4. Verwenden Sie den Befehl „unrar l compress file“. 5. Verwenden Sie den Befehl „zip -sf compress file“. 6. Verwenden Sie den Befehl „unzip -l compress file“. 8. Verwenden Sie den Befehl „zcat compress file“. Verwenden Sie „zless „Komprimierte Datei“; 10. Verwenden Sie weniger.

Tipps zum Reduzieren der Größe der Win10-Bildschirmaufzeichnungsdatei Tipps zum Reduzieren der Größe der Win10-Bildschirmaufzeichnungsdatei Jan 04, 2024 pm 12:05 PM

Viele Freunde müssen Bildschirme für Büroarbeiten aufzeichnen oder Dateien übertragen, aber manchmal verursacht das Problem zu großer Dateien große Probleme. Im Folgenden finden Sie eine Lösung für das Problem zu großer Dateien. Schauen wir uns das an. Was tun, wenn die Win10-Bildschirmaufzeichnungsdatei zu groß ist: 1. Laden Sie die Software Format Factory herunter, um die Datei zu komprimieren. Download-Adresse >> 2. Rufen Sie die Hauptseite auf und klicken Sie auf die Option „Video-MP4“. 3. Klicken Sie auf der Seite mit dem Konvertierungsformat auf „Datei hinzufügen“ und wählen Sie die zu komprimierende MP4-Datei aus. 4. Klicken Sie auf der Seite auf „Ausgabekonfiguration“, um die Datei entsprechend der Ausgabequalität zu komprimieren. 5. Wählen Sie „Geringe Qualität und Größe“ aus der Dropdown-Konfigurationsliste und klicken Sie auf „OK“. 6. Klicken Sie auf „OK“, um den Import der Videodateien abzuschließen. 7. Klicken Sie auf „Start“, um die Konvertierung zu starten. 8. Nach Abschluss können Sie

Golangs Methode zur Erzielung einer Bildqualitätskomprimierung Golangs Methode zur Erzielung einer Bildqualitätskomprimierung Aug 17, 2023 pm 10:28 PM

Golangs Methode zur Komprimierung der Bildqualität Mit der rasanten Entwicklung des Internets sind Bilder zu einem wichtigen Medium für die Online-Kommunikation und -Übertragung von Informationen geworden. Allerdings nehmen hochauflösende Bilder nicht nur viel Speicherplatz in Anspruch, sondern erhöhen auch die Ladezeit bei der Netzwerkübertragung, was einen gewissen Einfluss auf das Benutzererlebnis hat. Daher ist die Bildkomprimierung in praktischen Anwendungen eine sehr sinnvolle Aufgabe. In diesem Artikel wird erläutert, wie Sie mit Golang die Bildqualität komprimieren. Zuerst müssen wir Gola importieren

Das Linux-Serverprotokoll ist zu groß. Wie lässt sich das Problem beheben? Das Linux-Serverprotokoll ist zu groß. Wie lässt sich das Problem beheben? Jun 29, 2023 pm 11:09 PM

Häufige Probleme zu großer Protokolldateien auf Linux-Servern und deren Lösungen Mit der rasanten Entwicklung des Internets und der weiten Verbreitung von Servern ist es zu einem häufigen Problem geworden, dass Serverprotokolldateien immer größer werden. Eine große Menge an Protokolldaten nimmt nicht nur Speicherplatz in Anspruch, sondern kann auch die Leistung und Betriebsstabilität des Servers beeinträchtigen. In diesem Artikel wird das häufige Problem zu großer Protokolldateien auf Linux-Servern erläutert und einige Lösungen bereitgestellt. 1. Zu den allgemeinen Protokolldateien auf Linux-Servern gehören Systemprotokolle, Anwendungsprotokolle usw

See all articles