So verwenden Sie das MagickWand-Modul, um Bildern in PHP Wasserzeichen hinzuzufügen

墨辰丷
Freigeben: 2023-03-30 15:00:01
Original
1616 Leute haben es durchsucht

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 != &#39;.&#39; && $file != &#39;..&#39;){
 if(is_dir($to_dir . &#39;/&#39; . $file)){
  mkdir($output_dir . &#39;/&#39; . $file);
  add_wm_recurse($nmw_water, $to_dir . &#39;/&#39; . $file, $output_dir . &#39;/&#39; . $file, $arr);
 }else{
  if(!array_key_exists($to_dir . &#39;/&#39; . $file, $arr)){
  continue;
  }
  $sub_arr = $arr[$to_dir . &#39;/&#39; . $file];
  if($sub_arr){
  $x = intval($sub_arr[0]);
  $y = intval($sub_arr[1]);
  add_wm($nmw_water, $to_dir . &#39;/&#39; . $file, $output_dir . &#39;/&#39; . $file, $x, $y);
  }
 }
 }
 }
 $dp->close();
 }
 $to_dir = &#39;./resized&#39;;
 $output_dir = &#39;./output&#39;;
 // 这个是我用java的ImageIO遍历图片像素获取的符合裤子颜色的区域的坐标array(posX, posY)
 $arr = array(
 array(50, 50)
 );
 $water = &#39;./water.png&#39;;
 $nmw_water =NewMagickWand();
 MagickReadImage($nmw_water, $water);
 add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr);
 DestroyMagickWand($nmw_water);
?>
Nach dem Login kopieren

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,&#39;rose.jpg&#39;);
$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);
}
?>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage