Heim php教程 php手册 功能强大的PHP图片处理类(水

功能强大的PHP图片处理类(水

Jun 06, 2016 pm 07:41 PM
p php图片处理

这篇文章主要汇总介绍了php图片处理类(水

非常强大的php图片处理类,可以自定义图片水印、透明度、图片缩放、图片锐化、图片旋转、图片翻转、图片剪切、图片反色。

 * 图片处理函数功能:缩放、剪切、相框、水印、锐化、旋转、翻转、透明度、反色
* 处理并保存历史记录的思路:当有图片有改动时自动生成一张新图片,命名方式可以考虑在原图片的基础上加上步骤,例如:图片名称+__第几步

具体代码如下:

'没有找到相关图片!' ); /** * 构造函数:函数初始化 */ function __construct($PICTURE_URL){ $this -> get_info($PICTURE_URL); } function get_info($PICTURE_URL){ /** * 处理原图片的信息,先检测图片是否存在,不存在则给出相应的信息 */ @$SIZE = getimagesize($PICTURE_URL); if(!$SIZE){ exit($this -> ERROR['unalviable']); } // 得到原图片的信息类型、宽度、高度 $this -> PICTURE_MIME = $SIZE['mime']; $this -> PICTURE_WIDTH = $SIZE[0]; $this -> PICTURE_HEIGHT = $SIZE[1]; // 创建图片 switch($SIZE[2]){ case 1: $this -> PICTURE_CREATE = imagecreatefromgif($PICTURE_URL); $this -> PICTURE_TYPE = "imagejpeg"; $this -> PICTURE_EXT = "jpg"; break; case 2: $this -> PICTURE_CREATE = imagecreatefromjpeg($PICTURE_URL); $this -> PICTURE_TYPE = "imagegif"; $this -> PICTURE_EXT = "gif"; break; case 3: $this -> PICTURE_CREATE = imagecreatefrompng($PICTURE_URL); $this -> PICTURE_TYPE = "imagepng"; $this -> PICTURE_EXT = "png"; break; } /** * 文字颜色转换16进制转换成10进制 */ preg_match_all("/([0-f]){2,2}/i", $this -> FONT_COLOR, $MATCHES); if(count($MATCHES) == 3){ $this -> RED = hexdec($MATCHES[0][0]); $this -> GREEN = hexdec($MATCHES[0][1]); $this -> BLUE = hexdec($MATCHES[0][2]); } } # end of __construct /** * 将16进制的颜色转换成10进制的(R,G,,B) */ function hex2dec(){ preg_match_all("/([0-f]){2,2}/i", $this -> FONT_COLOR, $MATCHES); if(count($MATCHES) == 3){ $this -> RED = hexdec($MATCHES[0][0]); $this -> GREEN = hexdec($MATCHES[0][1]); $this -> BLUE = hexdec($MATCHES[0][2]); } } // 缩放类型 function zoom_type($ZOOM_TYPE){ $this -> ZOOM = $ZOOM_TYPE; } // 对图片进行缩放,如果不指定高度和宽度就进行缩放 function zoom(){ // 缩放的大小 if($this -> ZOOM == 0){ $this -> ZOOM_WIDTH = $this -> PICTURE_WIDTH * $this -> ZOOM_MULTIPLE; $this -> ZOOM_HEIGHT = $this -> PICTURE_HEIGHT * $this -> ZOOM_MULTIPLE; } // 新建一个真彩图象 $this -> TRUE_COLOR = imagecreatetruecolor($this -> ZOOM_WIDTH, $this -> ZOOM_HEIGHT); $WHITE = imagecolorallocate($this -> TRUE_COLOR, 255, 255, 255); imagefilledrectangle($this -> TRUE_COLOR, 0, 0, $this -> ZOOM_WIDTH, $this -> ZOOM_HEIGHT, $WHITE); imagecopyresized($this -> TRUE_COLOR, $this -> PICTURE_CREATE, 0, 0, 0, 0, $this -> ZOOM_WIDTH, $this -> ZOOM_HEIGHT, $this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT); } # end of zoom // 裁切图片,按坐标或自动 function cut(){ $this -> TRUE_COLOR = imagecreatetruecolor($this -> CUT_WIDTH, $this -> CUT_WIDTH); imagecopy($this -> TRUE_COLOR, $this -> PICTURE_CREATE, 0, 0, $this -> CUT_X, $this -> CUT_Y, $this -> CUT_WIDTH, $this -> CUT_HEIGHT); } # end of cut /** * 在图片上放文字或图片 * 水印文字 */ function _mark_text(){ $this -> TRUE_COLOR = imagecreatetruecolor($this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT); $this -> WORD = mb_convert_encoding($this -> FONT_WORD, 'utf-8', 'gb2312'); /** * 取得使用 TrueType 字体的文本的范围 */ $TEMP = imagettfbbox($this -> FONT_SIZE, 0, $this -> FONT_PATH, $this -> WORD); $WORD_LENGTH = strlen($this -> WORD); $WORD_WIDTH = $TEMP[2] - $TEMP[6]; $WORD_HEIGHT = $TEMP[3] - $TEMP[7]; /** * 文字水印的默认位置为右下角 */ if($this -> WORD_X == ""){ $this -> WORD_X = $this -> PICTURE_WIDTH - $WORD_WIDTH; } if($this -> WORD_Y == ""){ $this -> WORD_Y = $this -> PICTURE_HEIGHT - $WORD_HEIGHT; } imagesettile($this -> TRUE_COLOR, $this -> PICTURE_CREATE); imagefilledrectangle($this -> TRUE_COLOR, 0, 0, $this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT, IMG_COLOR_TILED); $TEXT2 = imagecolorallocate($this -> TRUE_COLOR, $this -> RED, $this -> GREEN, $this -> Blue); imagettftext($this -> TRUE_COLOR, $this -> FONT_SIZE, $this -> ANGLE, $this -> WORD_X, $this -> WORD_Y, $TEXT2, $this -> FONT_PATH, $this -> WORD); } /** * 水印图片 */ function _mark_picture(){ /** * 获取水印图片的信息 */ @$SIZE = getimagesize($this -> FORCE_URL); if(!$SIZE){ exit($this -> ERROR['unalviable']); } $FORCE_PICTURE_WIDTH = $SIZE[0]; $FORCE_PICTURE_HEIGHT = $SIZE[1]; // 创建水印图片 switch($SIZE[2]){ case 1: $FORCE_PICTURE_CREATE = imagecreatefromgif($this -> FORCE_URL); $FORCE_PICTURE_TYPE = "gif"; break; case 2: $FORCE_PICTURE_CREATE = imagecreatefromjpeg($this -> FORCE_URL); $FORCE_PICTURE_TYPE = "jpg"; break; case 3: $FORCE_PICTURE_CREATE = imagecreatefrompng($this -> FORCE_URL); $FORCE_PICTURE_TYPE = "png"; break; } /** * 判断水印图片的大小,并生成目标图片的大小,如果水印比图片大,则生成图片大小为水印图片的大小。否则生成的图片大小为原图片大小。 */ $this -> NEW_PICTURE = $this -> PICTURE_CREATE; if($FORCE_PICTURE_WIDTH > $this -> PICTURE_WIDTH){ $CREATE_WIDTH = $FORCE_PICTURE_WIDTH - $this -> FORCE_START_X; }else{ $CREATE_WIDTH = $this -> PICTURE_WIDTH; } if($FORCE_PICTURE_HEIGHT > $this -> PICTURE_HEIGHT){ $CREATE_HEIGHT = $FORCE_PICTURE_HEIGHT - $this -> FORCE_START_Y; }else{ $CREATE_HEIGHT = $this -> PICTURE_HEIGHT; } /** * 创建一个画布 */ $NEW_PICTURE_CREATE = imagecreatetruecolor($CREATE_WIDTH, $CREATE_HEIGHT); $WHITE = imagecolorallocate($NEW_PICTURE_CREATE, 255, 255, 255); /** * 将背景图拷贝到画布中 */ imagecopy($NEW_PICTURE_CREATE, $this -> PICTURE_CREATE, 0, 0, 0, 0, $this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT); /** * 将目标图片拷贝到背景图片上 */ imagecopy($NEW_PICTURE_CREATE, $FORCE_PICTURE_CREATE, $this -> FORCE_X, $this -> FORCE_Y, $this -> FORCE_START_X, $this -> FORCE_START_Y, $FORCE_PICTURE_WIDTH, $FORCE_PICTURE_HEIGHT); $this -> TRUE_COLOR = $NEW_PICTURE_CREATE; } # end of mark function alpha_(){ $this -> TRUE_COLOR = imagecreatetruecolor($this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT); $rgb = "#CDCDCD"; $tran_color = "#000000"; for($j = 0;$j PICTURE_HEIGHT-1;$j++){ for ($i = 0;$i PICTURE_WIDTH-1;$i++) { $rgb = imagecolorat($this -> PICTURE_CREATE, $i, $j); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $now_color = imagecolorallocate($this -> PICTURE_CREATE, $r, $g, $b); if ($now_color == $tran_color) { continue; } else { $color = imagecolorallocatealpha($this -> PICTURE_CREATE, $r, $g, $b, $ALPHA); imagesetpixel($this -> PICTURE_CREATE, $ALPHA_X + $i, $ALPHA_Y + $j, $color); } $this -> TRUE_COLOR = $this -> PICTURE_CREATE; } } } /** * 图片旋转: * 沿y轴旋转 */ function turn_y(){ $this -> TRUE_COLOR = imagecreatetruecolor($this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT); for ($x = 0; $x PICTURE_WIDTH; $x++) { imagecopy($this -> TRUE_COLOR, $this -> PICTURE_CREATE, $this -> PICTURE_WIDTH - $x - 1, 0, $x, 0, 1, $this -> PICTURE_HEIGHT); } } /** * 沿X轴旋转 */ function turn_x(){ $this -> TRUE_COLOR = imagecreatetruecolor($this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT); for ($y = 0; $y PICTURE_HEIGHT; $y++){ imagecopy($this -> TRUE_COLOR, $this -> PICTURE_CREATE, 0, $this -> PICTURE_HEIGHT - $y - 1, 0, $y, $this -> PICTURE_WIDTH, 1); } } /** * 任意角度旋转 */ function turn(){ $this -> TRUE_COLOR = imagecreatetruecolor($this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT); imageCopyResized($this -> TRUE_COLOR, $this -> PICTURE_CREATE, 0, 0, 0, 0, $this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT, $this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT); $WHITE = imagecolorallocate($this -> TRUE_COLOR, 255, 255, 255); $this -> TRUE_COLOR = imagerotate ($this -> TRUE_COLOR, $this -> CIRCUMROTATE, $WHITE); } /** * 图片锐化 */ function sharp(){ $this -> TRUE_COLOR = imagecreatetruecolor($this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT); $cnt = 0; for ($x = 0; $x PICTURE_WIDTH; $x++){ for ($y = 0; $y PICTURE_HEIGHT; $y++){ $src_clr1 = imagecolorsforindex($this -> TRUE_COLOR, imagecolorat($this -> PICTURE_CREATE, $x-1, $y-1)); $src_clr2 = imagecolorsforindex($this -> TRUE_COLOR, imagecolorat($this -> PICTURE_CREATE, $x, $y)); $r = intval($src_clr2["red"] + $this -> SHARP * ($src_clr2["red"] - $src_clr1["red"])); $g = intval($src_clr2["green"] + $this -> SHARP * ($src_clr2["green"] - $src_clr1["green"])); $b = intval($src_clr2["blue"] + $this -> SHARP * ($src_clr2["blue"] - $src_clr1["blue"])); $r = min(255, max($r, 0)); $g = min(255, max($g, 0)); $b = min(255, max($b, 0)); if (($DST_CLR = imagecolorexact($this -> PICTURE_CREATE, $r, $g, $b)) == -1) $DST_CLR = imagecolorallocate($this -> PICTURE_CREATE, $r, $g, $b); $cnt++; if ($DST_CLR == -1) die("color allocate faile at $x, $y ($cnt)."); imagesetpixel($this -> TRUE_COLOR, $x, $y, $DST_CLR); } } } /** * 将图片反色处理?? */ function return_color(){ /** * 创建一个画布 */ $NEW_PICTURE_CREATE = imagecreate($this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT); $WHITE = imagecolorallocate($NEW_PICTURE_CREATE, 255, 255, 255); /** * 将背景图拷贝到画布中 */ imagecopy($NEW_PICTURE_CREATE, $this -> PICTURE_CREATE, 0, 0, 0, 0, $this -> PICTURE_WIDTH, $this -> PICTURE_HEIGHT); $this -> TRUE_COLOR = $NEW_PICTURE_CREATE; } /** * 生成目标图片并显示 */ function show(){ // 判断浏览器,若是IE就不发送头 if(isset($_SERVER['HTTP_USER_AGENT'])) { $ua = strtoupper($_SERVER['HTTP_USER_AGENT']); if(!preg_match('/^.*MSIE.*\)$/i', $ua)) { header("Content-type:$this->PICTURE_MIME"); } } $OUT = $this -> PICTURE_TYPE; $OUT($this -> TRUE_COLOR); } /** * 生成目标图片并保存 */ function save_picture(){ // 以 JPEG 格式将图像输出到浏览器或文件 $OUT = $this -> PICTURE_TYPE; if(function_exists($OUT)){ // 判断浏览器,若是IE就不发送头 if(isset($_SERVER['HTTP_USER_AGENT'])) { $ua = strtoupper($_SERVER['HTTP_USER_AGENT']); if(!preg_match('/^.*MSIE.*\)$/i', $ua)) { header("Content-type:$this->PICTURE_MIME"); } } if(!$this -> TRUE_COLOR){ exit($this -> ERROR['unavilable']); }else{ $OUT($this -> TRUE_COLOR, $this -> DEST_URL); $OUT($this -> TRUE_COLOR); } } } /** * 析构函数:释放图片 */ function __destruct(){ /** * 释放图片 */ imagedestroy($this -> TRUE_COLOR); imagedestroy($this -> PICTURE_CREATE); } # end of class } ?>

这就是非常强大的php图片处理类,好好收藏,亲,相信以后一定会派上用场的。

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)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
2 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 implementieren Sie die Bildkomprimierung mit PHP So implementieren Sie die Bildkomprimierung mit PHP Sep 13, 2023 am 08:42 AM

Methode zur Verwendung von PHP zur Bildkomprimierung 1. Einführung in den Hintergrund Bei der Entwicklung von Websites oder mobilen Anwendungen stoßen wir häufig auf Situationen, in denen Bilder komprimiert werden müssen. Durch die Bildkomprimierung kann die Dateigröße von Bildern effektiv reduziert, die Seitenladegeschwindigkeit verbessert und Speicherplatz gespart werden. In diesem Artikel wird die Implementierung der Bildkomprimierung mithilfe der PHP-Sprache vorgestellt und spezifische Codebeispiele gegeben. 2. Einführung in die Methode PHP bietet eine Vielzahl von Erweiterungsbibliotheken für die Bildverarbeitung, z. B. GD, ImageMagick usw. Unter anderem ist die GD-Erweiterung in PHP integriert, um Bilder zu verarbeiten.

So passen Sie die Helligkeit und den Kontrast eines Bildes mit PHP an So passen Sie die Helligkeit und den Kontrast eines Bildes mit PHP an Aug 26, 2023 pm 07:04 PM

So passen Sie die Helligkeit und den Kontrast von Bildern mit PHP an. Helligkeit und Kontrast sind einer der wichtigen Faktoren beim Anpassen der visuellen Effekte von Bildern. Bei der Bildverarbeitung können Sie ein Bild heller oder dunkler machen, indem Sie die Helligkeit anpassen, und Sie können die Unterschiede zwischen verschiedenen Farben in einem Bild verstärken oder abschwächen, indem Sie den Kontrast anpassen. Als häufig verwendete serverseitige Skriptsprache bietet PHP eine Fülle von Bildverarbeitungsfunktionen und Bibliotheken. In diesem Artikel wird anhand von Codebeispielen erläutert, wie Sie mit PHP die Helligkeit und den Kontrast von Bildern anpassen. Passen Sie die Helligkeit des Bildes an. Sie können die Helligkeit des Bildes durch Ändern anpassen

Kurzanleitung zur PHP-Bildverarbeitung: Grundlegende Vorgänge und häufig gestellte Fragen Kurzanleitung zur PHP-Bildverarbeitung: Grundlegende Vorgänge und häufig gestellte Fragen Aug 21, 2023 am 10:12 AM

Kurzanleitung zur PHP-Bildverarbeitung: Grundlegende Vorgänge und häufig gestellte Fragen Einführung: In der Webentwicklung ist die Bildverarbeitung eine sehr häufige und wichtige Aufgabe. Unabhängig davon, ob es zum Hochladen von Bildern, Zuschneiden, Wasserzeichen und anderen Vorgängen bei der Website-Entwicklung oder zur Bildkomprimierung und -verarbeitung in mobilen Anwendungen verwendet wird, müssen einige Vorgänge an Bildern ausgeführt werden. Als beliebte serverseitige Skriptsprache verfügt PHP über leistungsstarke Bildverarbeitungsfunktionen. Dieser Artikel hilft Ihnen beim schnellen Einstieg in die PHP-Bildverarbeitung, einschließlich grundlegender Vorgänge und Antworten auf häufig gestellte Fragen. 1. Grundübungen

Ist das Huawei P60 ein 5G-Telefon? Ist das Huawei P60 ein 5G-Telefon? Feb 21, 2024 am 08:30 AM

Mit der Entwicklung der 5G-Technologie widmen die Menschen 5G-Mobiltelefonen immer mehr Aufmerksamkeit. Als einer der bekanntesten Hersteller von Kommunikationsgeräten in China ist Huawei führend in der Forschung, Entwicklung und Anwendung der 5G-Technologie. Im Jahr 2019 brachte Huawei eine Reihe von 5G-Mobiltelefonen auf den Markt, darunter die Huawei P60-Serie. Ist das Huawei P60 also ein 5G-Handy? Lassen Sie uns jetzt darüber diskutieren. Zunächst müssen wir klarstellen, dass es sich bei Mobiltelefonen der Huawei P60-Serie nicht um 5G-Mobiltelefone handelt. Die Huawei P60-Serie wurde 2019 veröffentlicht

Wie geht PHP mit dem Hochladen und Verarbeiten von Bildern um? Wie geht PHP mit dem Hochladen und Verarbeiten von Bildern um? Jul 02, 2023 pm 03:07 PM

PHP (Hypertext Preprocessor) ist eine Skriptsprache, die häufig für die serverseitige Entwicklung und häufig für die Website-Entwicklung verwendet wird. Bei der Website-Entwicklung ist die Handhabung von Bild-Uploads eine häufige Anforderung. In diesem Artikel wird erläutert, wie PHP das Hochladen und Verarbeiten von Bildern handhabt. Zunächst muss das Hochladen von Bildern mithilfe von HTML-Formularelementen implementiert werden. In HTML können Sie mit <inputtype="file"> ein Datei-Upload-Steuerelement erstellen

Wie verwende ich die PHP-Bildverarbeitungsbibliothek? Wie verwende ich die PHP-Bildverarbeitungsbibliothek? Jun 02, 2023 pm 05:21 PM

Die PHP-Bildverarbeitungsbibliothek ist eines der am häufigsten verwendeten Tools für PHP-Entwickler. Sie kann uns beim schnellen und einfachen Bearbeiten, Zuschneiden, Zoomen und anderen Vorgängen an Bildern helfen. In diesem Artikel wird die Verwendung der PHP-Bildverarbeitungsklassenbibliothek vorgestellt. 1. Was ist die PHP-Bildverarbeitungsbibliothek? Die PHP-Bildverarbeitungsklassenbibliothek besteht aus einer Reihe von Toolkits, die entwickelt wurden, um PHP-Entwicklern die schnelle Verarbeitung von Bildern zu erleichtern. Es kann Bildformate wie JPG, PNG, GIF und BMP verarbeiten und Bildskalierung, Drehung, Zuschneiden usw. realisieren.

Detaillierte Schritte zur Installation von Ouyi Okex (2025 Neulingshandbuch) Detaillierte Schritte zur Installation von Ouyi Okex (2025 Neulingshandbuch) Mar 31, 2025 pm 09:30 PM

In diesem Artikel wird ausführlich die Installationsmethode der Ouyi OKX -Handelsplattform eingeführt, in der drei Plattformen abgehalten werden: Android -Telefon, Windows -System und Mac -System. Android -Mobiltelefonbenutzer können es herunterladen und über den Google Play Store installieren. Während Windows- und Mac -Benutzer die offizielle Website von Ouyi OKX besuchen müssen, um das entsprechende Systeminstallationspaket für die Installation herunterzuladen. Der Artikel enthält detaillierte Anleitungen für jeden Schritt, mit dem Benutzer die Installation schnell abgeschlossen und die von Ouyi OKX bereitgestellten Dienste sofort erleben können. Kommen Sie und laden Sie Ouyi Okx herunter und starten Sie Ihre digitale Asset -Reise!

Die kommende Apple Watch SE wird wahrscheinlich über ein Kunststoffgehäuse verfügen, bekräftigt ein prominenter Tippgeber Die kommende Apple Watch SE wird wahrscheinlich über ein Kunststoffgehäuse verfügen, bekräftigt ein prominenter Tippgeber Aug 07, 2024 am 09:39 AM

Letzten Monat enthüllte der erfahrene Analyst Mark Gurman, dass die nächste Generation der Apple Watch SE, die möglicherweise schon in diesem Jahr auf den Markt kommt, möglicherweise über ein Gehäuse aus „starrem Kunststoff“ verfügt und nicht auf das Aluminiumgehäuse verzichtet, das die Apple Watch seit ihrer Einführung schmückt

See all articles