In diesem Artikel wird hauptsächlich die Verwendung des MagickWand-Moduls in PHP zum Bedienen von Bildern und zum Hinzufügen von Wasserzeichen vorgestellt. Ich hoffe, dass es für alle hilfreich ist.
Bei der Verwendung von PHP-Programmierung ist es häufig erforderlich, dem hochgeladenen Bild ein Wasserzeichen hinzuzufügen, um das Urheberrecht und die Quelle des Bildes zu ermitteln. Im Allgemeinen befindet sich das Wasserzeichen jedoch in der unteren rechten Ecke des Bildes. aber unterschiedliche Bilder Die Farbstufen sind unterschiedlich. Manchmal hat das Wasserzeichen unserer Bilder die gleiche Farbstufe wie das Bild selbst, was dazu führt, dass das Wasserzeichen unauffällig ist.
Der folgende Code kann die Farbstufen automatisch identifizieren Das Bild und das Hinzufügen von Bildern basierend auf dem Farbniveauunterschied können die gleichen Nachteile von Wasserzeichen und Bildfarbskala vermeiden.
<?php function add_wm($nmw_water, $src_file, $output_file, $x, $y) { if(file_exists($output_file)) return; $w1 = MagickGetImageWidth($nmw_water); $h1 = MagickGetImageHeight($nmw_water); $nmw =NewMagickWand(); MagickReadImage($nmw, $src_file); // 默认的加水印位置调整 $lt_w = 50; $lt_h = 50; if($x == 0){ $w = MagickGetImageWidth($nmw); $h = MagickGetImageHeight($nmw); $x = $w; $y = $h; }else{ // 根据具体情况调整 $lt_w = 30; $lt_h = 40; } MagickCompositeImage($nmw, $nmw_water, MW_OverCompositeOp, $x - $w1 - $lt_w, $y - $h1 - $lt_h); MagickWriteImage($nmw, $output_file); DestroyMagickWand($nmw); } // 还是groovy的eachFileRecurse好用啊 function add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr) { $dp = dir($to_dir); while($file=$dp->read()){ if($file != '.' && $file != '..'){ if(is_dir($to_dir . '/' . $file)){ mkdir($output_dir . '/' . $file); add_wm_recurse($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $arr); }else{ if(!array_key_exists($to_dir . '/' . $file, $arr)){ continue; } $sub_arr = $arr[$to_dir . '/' . $file]; if($sub_arr){ $x = intval($sub_arr[0]); $y = intval($sub_arr[1]); add_wm($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $x, $y); } } } } $dp->close(); } $to_dir = './resized'; $output_dir = './output'; // 这个是我用java的ImageIO遍历图片像素获取的符合裤子颜色的区域的坐标array(posX, posY) $arr = array( array(50, 50) ); $water = './water.png'; $nmw_water =NewMagickWand(); MagickReadImage($nmw_water, $water); add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr); DestroyMagickWand($nmw_water); ?>
Hinzugefügt:
Verwendung des PHP-Bildverarbeitungsmoduls MagickWand
MagickWand ist ein PHP-Modul, das für den Zugriff auf die Bildverarbeitungsbibliothek von ImageMagick verwendet wird. Das Folgende ist ein Codeausschnitt mit MagicWand:
$magick_wand=NewMagickWand(); MagickReadImage($magick_wand,'rose.jpg'); $drawing_wand=NewDrawingWand(); DrawSetFont($drawing_wand,"/usr/share/fonts/bitstream-vera/Vera.ttf"); DrawSetFontSize($drawing_wand,20); DrawSetGravity($drawing_wand,MW_CenterGravity); $pixel_wand=NewPixelWand(); PixelSetColor($pixel_wand,"white"); DrawSetFillColor($drawing_wand,$pixel_wand); if (MagickAnnotateImage($magick_wand,$drawing_wand,0,0,0,"Rose") != 0) { MagickEchoImageBlob( $magick_wand ); } else { echo MagickGetExceptionString($magick_wand); } ?>
Installationsmethode:
1. Laden Sie php_magickwand_q16_st.dll für 5.2.x herunter
2. Platzieren Sie es im PHP-Erweiterungsverzeichnis
3. Fügen Sie extension=php_magickwand_q16_st.dll zur php.ini-Datei hinzu
4. Starten Sie Apache neu
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Lernen aller hilfreich sein wird.
Verwandte Empfehlungen:
PHP-Datei-Upload-Klassenfreigabe_php-Beispiel
Detaillierte Erläuterung der PHP-Paging-Klasse mit Beispielen
Detaillierte Erläuterung der PHP-Warenkorbklasse mit einer Speicherdauer von einem Tag
Das obige ist der detaillierte Inhalt vonSo verwenden Sie das MagickWand-Modul, um Bildern in PHP Wasserzeichen hinzuzufügen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!